【问题标题】:WPF C# undo redoWPF C# 撤消重做
【发布时间】:2011-06-21 11:12:29
【问题描述】:

我必须在 WPF 中为文本框之类的 NumericEditor 执行 UNDO REDO 实现。 我正在使用基础架构 xamNumericEditor 控件。我该如何开始?最好遵循哪种方法。我已经搜索过网络。发现有备忘录和命令模式。哪个最好?

【问题讨论】:

  • 如果您在 .NET 4 上,您可以使用元组列表来创建某种更改历史... Tupple 或者您当然可以创建一个类或结构... =P

标签: c# .net wpf


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可能会发现受监控的撤消框架很有用。 http://muf.codeplex.com/

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

    【讨论】:

      【解决方案3】:

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

      如果您只是在编辑上下文中寻找本地撤消/重做(例如撤消剪切或删除操作),那么您可以在标准文本框控件(可能还有 Infragistics 控件)上免费获得此功能使用ApplicationCommands.UndoApplicationCommands.Redo。尝试将它们附加到 MenuItem 或 Button 并尝试它们的工作方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-12
        • 1970-01-01
        • 1970-01-01
        • 2017-06-28
        • 2011-11-25
        • 2011-08-04
        • 2014-04-15
        相关资源
        最近更新 更多