2012-06-28 161 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を使用しています。 、あなたのデータグリッドでは、あなたがこのような方法で結合宣言することができ

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

後:

+1

をしてください、あなたの人々は、あなたたちはdownvotingされたときに質問にコメントを追加することができます。次に、彼らは質問が下落された理由を知るでしょう。ありがとう。 –

+0

ありがとうございました。 – wipindipy10

答えて

9

あなたは、このようなVIEWMODE宣言することができMVVMパターンを使用しているので、中

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

をごコードでは、 "SelectedItem"プロパティを使用して、現在選択されているデータグリッド行を取得できます。あなたが意味する場合はそうで 行を「確認」、あなたは監視可能なコレクション照会できます

var selectedRows = ViewModel.Items.Where(i => i.IsSelected); 
関連する問題