DataGrid 上で選択されているレコードを削除する方法

  DataGrid 上で選択されているレコードを削除するには、連結するデータソースの CurrencyManager を利用して行います。
 「IsSelected()」メソッドで判定できるレコード番号は、DataGrid内でのレコード番号を表しており、連結したデータソースのレコード番号を直接表してはいないので注意が必要です。
 また、複数のレコードを削除する場合は、行番号の変化に対応する為、レコードの後ろから実行する方が容易です。
【使い方】
// dg は DataGrid

// DataGridに連結する BindingManagerBase を Cast して CurrencyManager を取得する。
CurrencyManager cm = (CurrencyManager)dg.BindingContext[dg.DataSource, dg.DataMember];

// 全ての行で選択状態を確認&削除
// 削除後の行番号変化に対応する為、後ろから実行する。
for ( int nr=cm.Count-1 ; nr ; nr-- )
{
    // 選択状態を確認
    if ( dg.IsSelected(nr))
    {
        //Debug.WriteLine("削除行No:" + nr);
        cm.List.RemoveAt( nr );
    }
}
【補足】
 DataGrid に連結するデータソースの CurrencyManager を利用することで、DataGrid 内部で使用しているデータにアクセスすることができます。
戻る