0

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

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

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

4

1 回答 1

0

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

另一个技巧是将 Undo / Redo 批处理属性转换为 List<> 并相应地修改它们(但请注意,在这种情况下,您是在“弄乱”内部结构)。

于 2014-09-09T10:26:12.397 回答