WPF データグリッド選択された行に対応するモデルを取得する
[WPF Tips]
1.状況
データグリッドで選択された行に対応するモデルを取得する。
2.対応
SelectionChanged イベントのハンドラを記述する。
3.参考
- DataGridView capturing user row selection
- Getting WPF Data Grid Context Menu Click Row
- WPF Binding SelectedItems in MVVM
- 実行ファイルのアイコンの変更
4.サンプル
ShopオブジェクトのリストとバインドしたデータグリッドのSelectionChangedイベントをハンドリング
<DataGrid x:Name="dgrdShops" ItemsSource="{Binding Shops}" SelectionChanged="dgrdShops_SelectionChanged"> : </DataGrid>
ViewModelのSelectedShops プロパティに選択されたオブジェクトをセットする。
private void dgrdShops_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { ViewModel.SelectedShops.Clear(); foreach (var item in dgrdShops.SelectedItems) { var shop = item as Shop; if (shop != null) { ViewModel.SelectedShops.Add(shop); } } }
以上