Как получить DataRow из строки в DataGridView

Я использую привязку данных Windows Forms DataGridView. как я могу перейти от выбранной пользователем строки в DataGridView к DataRow DataTable, которая является ее источником?

Ответ 1

DataRow row = ((DataRowView)DataGridViewRow.DataBoundItem).Row

Предполагая, что вы связали обычный DataTable.

MyTypedDataRow row = (MyTypedDataRow)((DataRowView)DataGridViewRow.DataBoundItem).Row

Предполагая, что вы привязали типизированный тип данных.

Для получения дополнительной информации см. статью в MSDN.

Ответ 2

DataTable table = grdMyGrid.DataSource as DataTable;
DataRow row = table.NewRow();
row = ((DataRowView)grdMyGrid.SelectedRows[0].DataBoundItem).Row;

Ответ 3

В DataGridViewRow есть свойство, называемое DataBoundItem объекта типа.

Это будет содержать DataRowView (для уверенности вы можете это проверить)

Ответ 4

В Visual Studio 2017.NET 4.5 у меня был успех

 var row = (DataRowView) e.Row.DataItem;