WPF C#撤消重做

时间:2010-07-21 14:48:06

标签: c# .net wpf

我必须在WPF中为文本框之类的NumericEditors执行UNDO REDO实现。 我正在使用infragistics xamNumericEditor控件。我怎么开始?哪种方法最好遵循。我搜索过网。发现纪念品和命令模式在那里。哪一个最好?

3 个答案:

答案 0 :(得分:0)

This文章介绍了实现撤消/重做模式的3种不同方法,包括使用Memento和命令模式。

答案 1 :(得分:0)

您可能需要考虑UI级别是否是实施撤消/重做的正确位置。这取决于您是在跟踪数据的更重要更改还是仅在UI中进行短期编辑。在后一种情况下,一旦你转移到另一个控件,你通常不在乎你是否会失去撤销状态。

如果您在编辑环境中纯粹寻找本地撤销/重做(例如撤消剪切或删除操作),那么您可以在标准文本框控件(以及可能的Infragistics控件)上免费获取此内容使用ApplicationCommands.UndoApplicationCommands.Redo。尝试将它们附加到MenuItem或Button,并试验它们的工作原理。

答案 2 :(得分:0)

您可能会发现Monitored Undo Framework非常有用。 http://muf.codeplex.com/

它不使用“自上而下”命令模式,而是在发生更改时监视更改,并允许您将委托放在撤消堆栈上以反转更改。您可以在codeplex网站上找到更多信息和文档。