我有一个巨大的DataTable实例绑定到GUI,在DataTable旁边放置了一个专门的对象(让它称之为ValuesIndex),实现对DataTable内容的快速访问。问题是我需要保持ValuesIndex与DataTable的当前状态保持同步。 当DataTable中有一些尚未被接受的值时 - 我需要将它们保存在ValuesIndex中。我还需要对RejectChanges做出适当的反应 - 所以整个ValuesIndex都会返回到之前的状态。
是否有可能为DataTable实例设置事件处理程序,以便捕获RejectChanges? 我尝试使用RowChanged事件来实现这一点,但我不能依赖它。如果我从表中删除一行然后拒绝更改,则由于某种原因不会调用RowChanged事件。
更新 事实证明我只是以错误的方式删除了行,而不是调用 DataRow.Delete()我使用了DataTable.Rows.Remove。在AcceptChanges和RejectChanges
上都会触发RowChanging事件