簡體   English   中英

WPF MVVM檢索datagrid選定的行

[英]WPF MVVM retrieve datagrid selected rows

我有一個帶有復選框的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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM