WPF データグリッド選択された行に対応するモデルを取得する

[WPF Tips]

WPF アプリケーション作成で得たTipsをメモ

1.状況

データグリッドで選択された行に対応するモデルを取得する。

2.対応

SelectionChanged イベントのハンドラを記述する。

3.参考

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

以上