WPF:如何在应用值转换器后获取 SelectedItem?
WPF: How to get SelectedItem after applying value converter?
我可以控制绑定图像的位置。我的视图模型中的代码如下所示:
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}"
如您所见,我有一个要绑定到 ItemsSource 的 IDocument 类型列表,而 SelectedItem 是 IDocument 类型。但是,图像的 Source 属性 是字符串类型,我使用 PathToFileConverter 值转换器将 IDocument 类型转换为字符串。
问题实际上是使用转换器后,SelectedItem 为空。
如何实现SelectedItem保持IDocument类型不为null?
您应该将转换器应用于 Image
的 Source
属性 绑定,而不是 ListView
[=19= 的 ItemsSource
]
绑定到 ListView
的 SelectedItem
属性 的 属性 的类型应始终为 T
] 属性 绑定或设置为 IEnumerable<T>
.
您应该从 ItemSsource 绑定中删除转换器,并添加 DisplayMemberPath="PathOfFileProperty",其中 'PathOfFileProperty' 是 Document 上指示文件路径的字符串 属性
我可以控制绑定图像的位置。我的视图模型中的代码如下所示:
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}"
如您所见,我有一个要绑定到 ItemsSource 的 IDocument 类型列表,而 SelectedItem 是 IDocument 类型。但是,图像的 Source 属性 是字符串类型,我使用 PathToFileConverter 值转换器将 IDocument 类型转换为字符串。
问题实际上是使用转换器后,SelectedItem 为空。
如何实现SelectedItem保持IDocument类型不为null?
您应该将转换器应用于 Image
的 Source
属性 绑定,而不是 ListView
[=19= 的 ItemsSource
]
绑定到 ListView
的 SelectedItem
属性 的 属性 的类型应始终为 T
] 属性 绑定或设置为 IEnumerable<T>
.
您应该从 ItemSsource 绑定中删除转换器,并添加 DisplayMemberPath="PathOfFileProperty",其中 'PathOfFileProperty' 是 Document 上指示文件路径的字符串 属性