C# WPF привязывает изображение к массиву байтов / sqlite BLOB
Я пытаюсь создать приложение "книга контактов", используя C# WPF, MVVM, SQLITE и DAPPER.
Проблема: когда я пытаюсь связать изображение контакта с элементом изображения в моем пользовательском элементе управления WPF, изображение не отображается.
Другие свойства контакта, привязанные к элементам wpf, по-видимому, работают(имя контакта, сведения и т. д.).
Массив байтов для изображения контакта инициализируется(я вручную добавил некоторые тестовые контакты и изображения в таблицу с помощью DB Browser for SQLITE), но элемент image его не отображает.
Что я делаю не так?
Что я уже пробовал:
Контактная Модель:
public class Contact { public int Id { get; set; } public string FullName { get; set; } public byte[] Picture { get; set; } public string Information { get; set; } public string Phone { get; set; } public string WhatsApp { get; set; } public string Skype { get; set; } }
код XAML:
<UserControl.Resources> <Converter:ByteArrayToBitmapImageConverter x:Name="binaryConverter" x:Key="byteToImageConverter"/> </UserControl.Resources>
<Grid Margin="5" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="4" Grid.RowSpan="4" Background="DarkGoldenrod"> <Image Source="{Binding SelectedContact.Picture, Converter={StaticResource byteToImageConverter}}" /> </Grid>
Конвертер:
public class ByteArrayToBitmapImageConverter : IValueConverter { public BitmapImage ConvertByteArrayToBitMapImage(byte[] imageByteArray) { BitmapImage img = new BitmapImage(); using (MemoryStream memStream = new MemoryStream(imageByteArray)) { img.StreamSource = memStream; } return img; } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { BitmapImage img = new BitmapImage(); if (value != null) { img = this.ConvertByteArrayToBitMapImage(value as byte[]); } return img; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } }