【发布时间】:2010-11-13 09:10:20
【问题描述】:
我有一个从查询中的 DataTable 填充到数据库的 DataViewGrid。在尝试捕获 Row_Leave 事件以便我可以正确更新它时,我似乎无法捕获布尔列中的最新值。
如果我只更新一个文本字段,当我访问底层数据源时,我会得到我输入的最新值,如果我访问布尔值,我会得到以前的值。
我正在访问这样的行:
if (allCorrect)
{
if (((DataRowView)dgView.Rows[e.RowIndex].DataBoundItem).IsNew)
{
this.InsertEntry((DataRow)((DataRowView)dgView.Rows[e.RowIndex].DataBoundItem).Row);
}
else
{
this.UpdateEntry((DataRow)((DataRowView)dgView.Rows[e.RowIndex].DataBoundItem).Row);
}
}
(访问底层行的方式很复杂,但就像访问 DGV 的 DataSource 一样,所以这不是问题。)
有什么想法吗?
编辑:我已将问题范围缩小到正确的事件调用。似乎 RowLeave 在 EndCellEdit 甚至 CellValueChanged 之前被调用。因此,该行永远不会获得状态更新(要在数据库中更新)并且不会这样做。我可以更改这些事件的顺序(以正常工作)吗?我发现这是一个 known issue,应该在 Orcas 中改变,但他们从来没有改变。
【问题讨论】:
标签: .net events datagridview boolean