Pomimo poprawnej inicjalizacji ImageSource żaden obrazek nie jest wyświetlany:
Metoda do wczytywania.
public static async Task<ImageSource> ReadCoverImageAsync(this VersOne.Epub.EpubBookRef bookRef)
{
BitmapImage image = null;
byte[] content = await bookRef.ReadCoverAsync();
if (content != null)
{
using (MemoryStream coverImageStream = new MemoryStream(content))
{
image = new BitmapImage();
image.BeginInit();
image.StreamSource = coverImageStream;
image.EndInit();
}
}
return image;
}
View:
<ListView x:Name="BookContainer" Grid.Row="1" BorderThickness="0" ItemsSource="{Binding Books}" Background="{DynamicResource BackgroundBrush}" Width="235" Margin="0,0,25,0">
<ListView.ItemTemplate>
<DataTemplate>
<Border BorderBrush="{DynamicResource BackgroundBrushDark}" BorderThickness="3" Background="{DynamicResource BackgroundBrushLight}" Width="210" Height="265" Margin="0,0,0,25">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="25"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="20"/>
<RowDefinition Height="*"/>
<RowDefinition Height="20"/>
<RowDefinition Height="35"/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Metadata.Title}" Grid.Row="1" Grid.Column="1"/> <!-- Wyświetlany prawidłowo -->
<Image Source="{Binding Metadata.Cover}" Grid.Row="2" Grid.Column="1"/> <!-- !!! Tutaj !!! -->
<Button Content="Read" Grid.Row="4" Grid.Column="1"
Style="{DynamicResource ThemedButton}"
Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Path=DataContext.ReadBookCommand}"
CommandParameter="{Binding}"
/>
</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Style>
<Style TargetType="{x:Type ListView}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Hidden"/>
</Trigger>
</Style.Triggers>
</Style>
</ListView.Style>
<ListView.Resources>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
</Trigger>
</Style.Triggers>
</Style>
</ListView.Resources>
</ListView>
Metadata.Cover jest typu System.Windows.Media.Imaging.BitmapImage (sprawdzałem przed samym dodaniem do kolekcji), ma poustawiane wartości pól PixelWidth, PixelHeight.
Ścieżka bindowania jest poprawna bo Metadata.Title jest wyświetlany prawidłowo, jakieś pomysły czemu obrazek nie jest wyświetlany?