データバインドされたWindowsフォームDataGridView
を使用しています。 DataGridView
でユーザーが選択した行から、そのソースであるDataRow
のDataTable
に移動するにはどうすればよいですか?
DataRow row = ((DataRowView)DataGridViewRow.DataBoundItem).Row
通常のDataTable
をバインドしたと仮定します。
MyTypedDataRow row = (MyTypedDataRow)((DataRowView)DataGridViewRow.DataBoundItem).Row
型指定されたデータテーブルをバインドしたと仮定します。
詳細については MSDNの記事 を参照してください。
DataTable table = grdMyGrid.DataSource as DataTable;
DataRow row = table.NewRow();
row = ((DataRowView)grdMyGrid.SelectedRows[0].DataBoundItem).Row;
DataGridViewRow
には、タイプオブジェクトのDataBoundItem
と呼ばれるプロパティがあります。
これにはDataRowView
が含まれます(確実にこれを確認できます)
Visual Studio 2017 .NET 4.5では、
var row = (DataRowView) e.Row.DataItem;