为什么它说'#34;这一行绑定到另一个表"当我试图将DataGridViewRow转换为DataRow时?

时间:2014-03-13 15:04:52

标签: c# winforms datagridview

我有以下行从DataRow创建DataGridViewRow,当用户点击DataGridViewRow <中的checkbox时会提取DataGridViewCheckboxColumn / p>

private void dgvAvailableCourses_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    DataRow dr = ((DataRowView)dgvAvailableCourses.Rows[e.RowIndex].DataBoundItem).Row
}

dgvAvailableCourses - DataGridview

当我运行上面的行时,它说,这行绑定到另一个表,我该如何解决这个问题呢?我需要此行为DataRow

创建DataTable

即使我以不同的方式使用dr,仍会出现相同的错误

    private void dgvAvailableCourses_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
DataTable dt = (DataTable)dgvAvailableCourses.DataSource;
                        DataRow dr = dt.Rows[e.RowIndex];
    }

感谢

1 个答案:

答案 0 :(得分:0)

我认为您需要执行CancelEdit / EndEdit来查询您的源,因为该行处于编辑模式我相信。

DataRow dr = dt.Rows[e.RowIndex];
(dr.RowState == RowState.Modified){
 dr.EndEdit();
}
//Access the row data here
DataRow dr = ((DataRowView)dgvAvailableCourses.Rows[e.RowIndex].DataBoundItem).Row