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