我需要知道是否修改了XtraGrid
(更改了值或添加了行)。
我可以制作boolean var
并在GridView_CellValueChanged
上更改它:
void suppGridView_CellValueChanged(object sender, CellValueChangedEventArgs e) {
isModified = true;
}
或
我可以阅读所有DataSource并检查DataRow.RowState属性值(Modified
或Added
):
foreach (DataRow row in dataSource.Rows) {
if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added)
return true;
}
你知道一种更简单的方法吗?
答案 0 :(得分:4)
您可以通过以下方式了解数据表是否已更改:
DataTable changes = table.GetChanges(DataRowState.Added | DataRowState.Modified);
bool isModified = (changes != null);
此处table
是一个DataTable
来自msdn:
DataTable.GetChanges方法:
获取DataTable的副本,其中包含自上次加载以来所做的所有更改,或者自调用AcceptChanges以来,由DataRowState过滤。
<强>注:强> 如果未找到所需DataRowState的行,则该方法返回 null 。