删除Memento中的重做操作?

时间:2014-09-08 07:43:33

标签: catel memento

在我的应用程序中,用户可以向DataGrid添加行并更改每行的属性。用户还可以删除行。它可以撤消和重做这些操作,但是如果用户添加行,比如说三个,修改一些值,然后撤回到只有一行的地方,然后添加一个新行似乎不合逻辑,以便能够重做undos(在最后添加的行之后出现新行。因此,当用户添加新行时,我想删除所有Redos。

我尝试使用RedoBatches来获取所有重做的枚举,然后对每个重做清除以删除它们,但重做按钮仍处于活动状态,并在按下时重做这些操作。

这是尝试实现这一目标的正确方法,还是不可能,或者我应该采取不同的方式吗?

1 个答案:

答案 0 :(得分:0)

使用对象添加项目时,可以使用 UnregisterObject 取消注册。它也会自动删除空批。

另一个黑客是将Undo / Redo批次属性转换为List<>并相应地修改它们(但请注意,在这种情况下,你是"搞乱"内部)。