C#DataAdapter更新触发嵌套操作

时间:2016-05-19 13:20:19

标签: c# wpf datagrid dataset dataadapter

我有一个DataGrid绑定到DataSet。在更改或添加行时,我尝试保存更改。我为数据集的RowChange事件添加委托,该事件在dataAdapter.Update(行)之后多次调用自身!!

NewGeoDataSet.RegionGeoDataTable reg = new NewGeoDataSet.RegionGeoDataTable();
regAdapter = new NewGeoDataSetTableAdapters.RegionGeoTableAdapter();
reg = regAdapter.GetData();
datagrid.DataContext = reg;
datagrid.ItemsSource = reg;
reg.RowChanged += new DataRowChangeEventHandler(dataset_RowChanged);

代表

private void dataset_RowChanged(object sender, DataRowChangeEventArgs e)
{
    Console.WriteLine("row changed "+e.Action);
    DataRow r = e.Row;      
    regAdapter.Update(r);
    Console.WriteLine("data updated");

}

最终我得到了:
行已更改更改
行已更改更改
例外情况:已存在与此命令关联的打开数据加载器
行已更改更改
再次例外
行改变了承诺 数据更新
数据更新

所以问题是:为什么dataAdapter.Update(行)触发自己。我怎么能克服它?我试图使用bool变量来防止进一步执行,但它不可靠和肮脏。

我已经检查了http://www.codeproject.com/Articles/30905/WPF-DataGrid-Practical-Examples它似乎相同但不起作用......

我可能做错了什么?

0 个答案:

没有答案