XtraGrid已被修改

时间:2012-08-22 06:58:59

标签: c# winforms devexpress xtragrid

我需要知道是否修改了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;
}

你知道一种更简单的方法吗?

1 个答案:

答案 0 :(得分:4)

您可以通过以下方式了解数据表是否已更改:

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

此处table是一个DataTable 来自msdn

  

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

<强>注: 如果未找到所需DataRowState的行,则该方法返回 null