我有一个加载到 DataTable 对象的数据库表,该对象绑定到多个UIElements,例如 DataGrid , ComboBox , TextBoxes 等的 ItemsSource 属性。有没有办法实现一个“看门狗”,不断检查DataTable或DataSet是否已更改并自动更新单独的线程上的数据库?
我的目标是消除客户端必须手动触发“保存”事件以将这些更改传播到数据库的需要,并且数据库始终与DataSet / DataTable中的数据同步。还请建议这是一个好的做法还是有更好的选择。
答案 0 :(得分:1)
DataTable对象有许多在行数据更改时触发的事件 您可以使用RowChanged / RowChanging,RowDeleted / RowDeleting
See a full documentation on MSDN
您可以用这种简单的方式为RowChanging事件添加事件处理程序
yourTable.RowChanging += new DataRowChangeEventHandler(yourRowChangingHandler);
然后添加处理程序
private void yourRowChangingHandler(object sender, DataRowChangeEventArgs e)
{
Console.WriteLine("Action={0}", e.Action);
}
其中Action property是描述操作的枚举