有什么区别 ieDitableObjectIrevertiblechangeTracking (均来自System.componentModel名称空间)?看起来第一个支持显式交易,而第二个则更隐含 - 但净结果是相同的。我应该如何在代码中实施此操作?目前我什么都不做 开头 并打电话 拒绝法接受结束取消 分别。我的问题是,这也将接受BeginEdit之前的更改。

这真的是微软想要的还是我试图实现两个相互排斥的接口?

有帮助吗?

解决方案

这两个接口不是相互排斥的。他们是 只是打算支持不同但有些相关的方案, ,也可以通过同一给定类实现。这是一个快速解释:

IEDITAITHOBJECT接口

ieDitableObject 界面旨在支持对象需要的情况 在编辑时以某种特殊方式管理其内部状态.

因此,接口包括在启动,完成或中止编辑阶段时明确标记的方法,以便可以采取适当的操作以在这些阶段修改对象状态。


IREVERTIBLECHANGETRACKETRACKING界面

IrevertiblechangeTracking 界面旨在支持对象需要能够的情况 回滚至先前的状态.

该界面的方法是标记对象的当前状态应永久性的方法,否则应将其恢复为最后已知的永久状态。

其他提示

ieDitableObject 用于短期,换逆修改,例如对话框。

IrevertiblechangeTracking 用于长期可逆的更改,例如编辑记录和跟踪是否需要保存记录。

我经常实现两个接口,以便我能够支持两个级别的撤消。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top