2017-02-27 50 views
-1

我有控制我绑定图像的位置。在我看来模型的代码看起来如下:WPF:如何在应用价值转换器后获得SelectedItem?

public List<IDocument> SelectedEventPhotoList 
{ 
    get { return _selectedEventPhotoList; } 
    set 
    { 
     if (Equals(value, _selectedEventPhotoList)) 
      return; 

     _selectedEventPhotoList = value; 
     RaisePropertyChanged(() => SelectedEventPhotoList); 
    } 
} 

public IDocument SelectedEventPhoto 
{ 
    get { return _selectedEventPhoto; } 
    set 
    { 
     if (Equals(value, _selectedEventPhoto)) 
      return; 

     _selectedEventPhoto = value; 
     RaisePropertyChanged(() => SelectedEventPhoto); 
    } 
} 

的结合看起来如下:

<ListView Grid.Row="0" 
      ItemsSource="{Binding SelectedEventPhotoList, Converter={StaticResource PathToFileConverter}}" 
      SelectedItem="{Binding SelectedEventPhoto}" 

正如你可以看到我有的IDocument类型的列表绑定到的ItemsSource和的SelectedItem是的IDocument的类型。但是,图像具有字符串类型的Source属性,并且我使用PathToFileConverter值转换器将IDocument类型转换为字符串。

这个问题实际上是在使用转换器后,SelectedItem为空。

我该如何实现SelectedItem保持IDocument类型,它不是null?

+0

你为什么要转换的ItemsSource为另一种类型?这没有意义。 – mm8

+0

由于IDocument对于图像的Source属性不是正确的类型。另一方面,我需要SelectedItem是IDocument类型。 – tesicg

+1

您应该将转换器应用于Source属性绑定,而不是ListView的ItemsSource。 – mm8

回答

0

你应该转换器适用于不ImageSource属性绑定和的ListView

类型绑定到一个ListViewSelectedItem属性的属性的ItemsSource应始终T如果ItemsSource财产被绑定或设置为IEnumerable<T>

0

您应该删除从的ItemSource绑定的转换器,并添加的DisplayMemberPath =“PathOfFileProperty”,其中“PathOfFileProperty”是的IDocument字符串属性,它指示文件路径