Я использую привязку данных Windows Forms DataGridView
. как я могу перейти от выбранной пользователем строки в DataGridView
к DataRow
DataTable
, которая является ее источником?
Как получить DataRow из строки в DataGridView
Ответ 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;