ieDibleObject和iRevertiblechangeTracking有什么区别?
-
24-10-2019 - |
题
有什么区别 ieDitableObject 和 IrevertiblechangeTracking (均来自System.componentModel名称空间)?看起来第一个支持显式交易,而第二个则更隐含 - 但净结果是相同的。我应该如何在代码中实施此操作?目前我什么都不做 开头 并打电话 拒绝法 和 接受 在 结束 和 取消 分别。我的问题是,这也将接受BeginEdit之前的更改。
这真的是微软想要的还是我试图实现两个相互排斥的接口?
解决方案
这两个接口不是相互排斥的。他们是 只是打算支持不同但有些相关的方案, ,也可以通过同一给定类实现。这是一个快速解释:
IEDITAITHOBJECT接口
这 ieDitableObject 界面旨在支持对象需要的情况 在编辑时以某种特殊方式管理其内部状态.
因此,接口包括在启动,完成或中止编辑阶段时明确标记的方法,以便可以采取适当的操作以在这些阶段修改对象状态。
IREVERTIBLECHANGETRACKETRACKING界面
这 IrevertiblechangeTracking 界面旨在支持对象需要能够的情况 回滚至先前的状态.
该界面的方法是标记对象的当前状态应永久性的方法,否则应将其恢复为最后已知的永久状态。
其他提示
ieDitableObject 用于短期,换逆修改,例如对话框。
IrevertiblechangeTracking 用于长期可逆的更改,例如编辑记录和跟踪是否需要保存记录。
我经常实现两个接口,以便我能够支持两个级别的撤消。
不隶属于 StackOverflow