Mam Listbox, w którym każdy element ma obraz, który jest już zapisany jako zawartość. Wybieram obraz do wyświetlenia za pomocą konwertera.Image Problem z ładowaniem w Listbox, WP7
Jeśli obraz dla odpowiedniej wartości nie istnieje, muszę wyświetlić domyślny obraz , który obsłużyłem w zdarzeniu ImageFailed.
Problem polega na tym, że po uruchomieniu programu otrzymuję domyślny obraz dla kilku już istniejących obrazów. Jeśli przewinię w dół listy i ponownie wykonam kopię zapasową, czasami obraz wyświetlany prawidłowo wyświetla domyślny obraz. Wydaje się, że jest to problem z wydajnością.
Jestem nowicjuszem w zakresie opracowywania aplikacji. Daj mi znać, chociaż może wydawać się to banalne.
Poniżej jest moja realizacja
<ListBox DataContext="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Width="90" Height="67" Source="{Binding id,Converter={StaticResource imageConverter}}" ImageFailed="ImageFailed" />
_
_
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Funkcja konwersji
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string Id = (string)value;
string imagePath;
imagePath = string.Format(AppDefines.channelLogoImgPath, prgSvcId);
return imagePath;
}
Handler ImageFailed
private void ImageFailed(object sender, ExceptionRoutedEventArgs e)
{
Image Img = (Image)sender;
string imgPath = Defines.defImagePath
Uri uri = new Uri(imgPath, UriKind.RelativeOrAbsolute);
BitmapImage bDefImage = new BitmapImage(uri);
Img.Source = bDefImage;
}
+1 za jednoznaczne sformułowanie pytania oraz za pomocą przykładu Xaml & Code! :) –