如何使用MVVM在wpf datagrid中获取所选项目

sus*_*gos 1 wpf mvvm

我想获得一些选定的行项目并尝试操纵它们.目前SelectedItem一次只给我一行.而且SelectedItems不是依赖属性.我通过创建自己的依赖属性来获取所选项目,从而找到了解决方案.除此之外有什么选择吗?

emy*_*bob 6

另一种可能的解决方案是将IsSelected属性添加到您在网格中显示的项目上

public bool IsSelected
    {
        get { return _isSelected; }
        set
        {
           RaisePropertyChanged(_isSelected, value);
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后在数据网格行上添加样式以更改该属性.

  <Style TargetType="{x:Type DataGridRow}" >
     <Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
  </Style>
Run Code Online (Sandbox Code Playgroud)

然后获取当前选定的项目:

  var selectedItems = Items.Where(i => i.IsSelected).ToList();
Run Code Online (Sandbox Code Playgroud)