更改gridview但不更改数据源

时间:2014-06-24 18:19:01

标签: c# winforms

我有一个DataTable,initalTable,其中包含一些初始价格。我将此DataTable用作DataSource的{​​{1}}。用户可以更改GridView中的某些值,但我的initialTable中的值也会被修改。我该如何绕过这个绑定?我需要在GridView中的用户更改的值与我最初存储在GridView中的值之间进行交叉引用。

1 个答案:

答案 0 :(得分:2)

您可以使用GetChanges方法或只使用clone DataTable。

private IEnumerable<String> GetChangedWithCrossReference()
{
    return from originalRow in this.storeDataSet.PricesDataTable
               join changedRow in this.storeDataSet.PricesDataTable.GetChanges(DataRowState.Changed)
               on changedRow["Id"] equals originalRow["Id"]
           select String.Format("Was {0}, became {1}",
               originalRow ["Value"], 
               changedRow["Value"]);
}

甚至更好更快MSDN

private IEnumerable<String> GetChangedWithCrossReference()
{
    return from row in this.storeDataSet.PricesDataTable
           select String.Format("Was {0}, became {1}", 
               row ["Value"],
               row ["Value", DataRowState.Original])
           where row.State == DataRowState.Changed;
}