WPF:如何在应用价值转换器后获得SelectedItem?
问题描述:
我有控制我绑定图像的位置。在我看来模型的代码看起来如下: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?
答
你应该转换器适用于不Image
的Source
属性绑定和的ListView
类型绑定到一个ListView
的SelectedItem
属性的属性的ItemsSource
应始终T
如果ItemsSource
财产被绑定或设置为IEnumerable<T>
。
答
您应该删除从的ItemSource绑定的转换器,并添加的DisplayMemberPath =“PathOfFileProperty”,其中“PathOfFileProperty”是的IDocument字符串属性,它指示文件路径
你为什么要转换的ItemsSource为另一种类型?这没有意义。 – mm8
由于IDocument对于图像的Source属性不是正确的类型。另一方面,我需要SelectedItem是IDocument类型。 – tesicg
您应该将转换器应用于Source属性绑定,而不是ListView的ItemsSource。 – mm8