2017-10-10 47 views
0

圖像正確加載到列表視圖,但每當我點擊listview並更改SelectedItem,圖像消失。我可以看到這些元素並對它們做所有事情,但它們是一排簡單的行,而圖像本身並不在行中。 這是爲ListView圖像從WPF中的ListView消失後的動作

<ListView Name="testLB" ItemsSource="{Binding Images}" SelectedItem="{Binding SelectedImage}" HorizontalAlignment="Left" Height="393" Margin="627,28,0,0" VerticalAlignment="Top" Width="244" SelectionChanged="testLB_SelectionChanged"/> 

的XAML這是我的ViewModel的一部分。

public ObservableCollection<Image> Images { get; private set; } 
    public Image SelectedImage { get => selectedImage; 
     set { 
      this.selectedImage = value; 
      this.OnPropertyChanged("SelectedImage"); 
     } } 

    private Image selectedImage; 
+0

爲什麼你有UI元素'圖片'在你的視圖模型中?您沒有提供完整且可驗證的示例,但我認爲Image的不正確使用是問題的重要部分 – ASh

回答

0

Image是UIElement的子類,因此不應在視圖模型中用作項目類型。

使用ImageSource代替(並添加如BitmapImages或BitmapFrames到您的收藏):

public ObservableCollection<ImageSource> Images { get; private set; } 

public ImageSource SelectedImage { ... } 

然後讓你的ListView的ItemTemplate包含圖像元素:

<ListView ItemsSource="{Binding Images}" SelectedItem="{Binding SelectedImage}" ...> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Image Source="{Binding}"/> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
+0

謝謝!永遠不會猜到這可能會導致這樣的問題。它現在工作完美無瑕。 –