IEditableObject和IRevertibleChangeTracking(都来自 System.ComponentModel 命名空间)有什么区别?看起来第一个支持显式事务,而第二个更隐式 - 但最终结果是相同的。我应该如何在代码中实现这一点?目前我在 BeginEdit 中什么都不做,分别在EndEdit和CancelEdit中调用RejectChanges和AcceptChanges。我的问题是这也将接受在 BeginEdit 之前所做的更改。
这真的是微软想要的还是我试图实现两个互斥的接口?