【问题标题】:WPF MVVM retrieve datagrid selected rowsWPF MVVM 检索数据网格选定的行
【发布时间】:2012-06-29 16:50:37
【问题描述】:

我使用我在互联网上找到的这段代码实现了一个带有复选框的 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。

【问题讨论】:

  • 当你们投反对票时,请你们添加评论来提问。然后,他们就会知道为什么他们的问题被否决了。谢谢。

标签: c# wpf mvvm mvvm-light wpfdatagrid


【解决方案1】:

由于您使用的是 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2014-01-29
    相关资源
    最近更新 更多