c# – WPF MVVM检索datagrid选定的行

我有一个带有复选框的DataGrid,使用我在互联网上找到的代码.
<my:DataGrid.RowHeaderTemplate>
  <DataTemplate>
    <Grid>
      <CheckBox IsChecked="{Binding Path=IsSelected,Mode=TwoWay,RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type my:DataGridRow}}}" />
    </Grid>
  </DataTemplate>
</my:DataGrid.RowHeaderTemplate>@H_404_3@ 
 

但是,我如何获得所选行?我正在使用WPF MVVM.

解决方法

因为你正在使用MVVM模式,你可以像这样声明一个viewmode
public class Myviewmodel 
{
    public ObservableCollection<Prototype> Items { ... }
    public Prototype SelectedItem SelectedItem { ... }
}@H_404_3@ 
 

之后,在您的数据网格中,您可以通过以下方式声明绑定:

<DataGrid ItemSource="{Binding Items}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}"... />@H_404_3@ 
 

在您的代码中,您可以使用“SelectedItem”属性获取当前选定的数据网格行.
否则,如果您的意思是“已检查”行,则可以查询您的可观察集合:

var selectedRows = viewmodel.Items.Where(i => i.IsSelected);@H_404_3@

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...