我有一个 ListView,用户可以选择多个项目。我需要在我的视图模型中获取从 ListView 中选择的项目列表。
请建议从 ListView 中获取 SelectedItems。
谢谢
我有一个 ListView,用户可以选择多个项目。我需要在我的视图模型中获取从 ListView 中选择的项目列表。
请建议从 ListView 中获取 SelectedItems。
谢谢
我通常有两种方法
如果我只需要知道出于命令的目的选择了什么,我将设置我的RelayCommandorDelegateCommand以ViewModel期望一个类型的参数IList<SomeClass>并将ListView.SelectedItemsin 作为CommandParameter
<Button Command="{Binding SomeCommand}"
CommandParameter="{Binding ElementName=MyListView, Path=SelectedItems}" />
IsSelected我经常使用的另一种方法是在 中使用的任何数据项上创建一个属性ListView,并将其绑定到该ListViewItem.IsSelected属性
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
</Style>
然后我ViewModel可以通过查看它的IsSelected属性来确定一个项目是否被选中
foreach(var item in MyCollection)
{
if (item.IsSelected)
// Do work
}