加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:33:57 所属栏目:百科 来源:网络整理
导读:我有一个带有复选框的DataGrid,使用我在互联网上找到的代码. my:DataGrid.RowHeaderTemplate DataTemplate Grid CheckBox IsChecked="{Binding Path=IsSelected,Mode=TwoWay,RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type my:DataGridR
我有一个带有复选框的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>

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

解决方法

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

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

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

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

var selectedRows = ViewModel.Items.Where(i => i.IsSelected);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读