0

我需要知道是否XtraGrid已修改(更改值或添加行)。

我可以制作一个boolean var并更改它GridView_CellValueChanged

void suppGridView_CellValueChanged(object sender, CellValueChangedEventArgs e) {
    isModified = true;
}

或者
我可以读取所有 DataSource 并检查DataRow.RowState属性值(ModifiedAdded):

foreach (DataRow row in dataSource.Rows) {
    if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added) 
        return true;
}

你知道更简单的方法吗?

4

1 回答 1

4

您可以通过以下方式知道数据表是否发生了变化:

DataTable changes = table.GetChanges(DataRowState.Added | DataRowState.Modified);
bool isModified = (changes != null);

table是一个数据表。
来自msdn

DataTable.GetChanges 方法:
获取 DataTable 的副本,其中包含自上次加载或调用 AcceptChanges 以来对其所做的所有更改,并由 DataRowState 过滤。

备注: 如果没有找到所需 DataRowState 的行,则该方法返回null

于 2012-08-22T08:58:34.593 回答