2012-06-28 73 views
6

我有一個DataGrid複選框實現它使用這個代碼,我在互聯網上找到。WPF MVVM檢索數據網格選擇行

<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。

+1

請你能鄉親添加評論時,你們是downvoting質疑。然後,他們會知道爲什麼他們的問題被低估。謝謝。 –

+0

明白了..謝謝。 – wipindipy10

回答

9

由於您使用的MVVM模式,你可以聲明這樣的視圖模式:

public class MyViewModel 
{ 
    public ObservableCollection<Prototype> Items { ... } 
    public Prototype SelectedItem SelectedItem { ... } 
} 

後,您DataGrid中,你可以聲明這樣綁定:

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

在你代碼,您可以使用「SelectedItem」屬性來獲取當前選定的數據網格行。 否則,如果你的意思是「籤」行,你可以查詢您觀察到的集合:

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