У меня есть модель Person:
public class Person
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string FirstName{ get; set; }
public string LastName{ get; set; }
public byte[] Image { get; set; }
}
В моей базе данных SQLite у меня есть картинки, хранящиеся в таблице. Я пытаюсь показать изображения в ListView. Итак, реализовал ImageConverter:
public class ImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
ImageSource retSource = null;
if (value != null)
{
byte[] imageAsBytes = (byte[])value;
var stream = new MemoryStream(imageAsBytes);
retSource = ImageSource.FromStream(() => stream);
}
return retSource;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
В коде Xaml я пытаюсь привязать и преобразовать изображение следующим образом:
<Page.Resources>
<converters:ImageConverter x:Key="ImageConverter" />
</Page.Resources>
<ContentPage.Content>
<ListView x:Name="PersonListView">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell Height="220">
<Image Source="{Binding Image, Converter={StaticResource ImageConverter}}"/>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage.Content>
Когда я запускаю страницу, я получаю эту ошибку:
System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
Я не понимаю, где это не так в моем коде. Как я могу просматривать изображения из моей базы данных?