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);
}
}
}
以上
