【问题标题】:MVP Supervising Controller, Data Bindings and Undo/RedoMVP 监督控制器、数据绑定和撤消/重做
【发布时间】:2011-07-13 09:29:24
【问题描述】:

我的应用程序是一个 MDI Winform 应用程序。 我遇到了一些与 MVP 模式和数据绑定有关的问题。

我所有的表单都是无模式的。当我修改字段或更改组合框中的选定项目时,我想修改模型并且希望所有表单立即与模型同步。 数据绑定非常适合简单的字段,对于复杂的操作,我使用 Presenter 来“手动”更新视图。

但是,如何在图片中添加撤消/重做机制? 我的意思是:我想通过单击“撤消”按钮来恢复我在文本字段中所做的更改。

我尝试应用命令模式,但似乎在数据绑定机制中没有引入“命令”机制的地方。我非常坚持这一点,现在我正在考虑完全放弃绑定机制。

我看了很多关于Binding的文章,但是没有真正暴露undo/redo的解决方案。

撤消/重做和数据绑定真的不兼容吗?

【问题讨论】:

标签: winforms data-binding mvp undo undo-redo


【解决方案1】:

您可以使用 Monitored Undo Framework 之类的库(http://muf.codeplex.com/ 或 NuGet)来管理撤消堆栈。它不需要命令模式。相反,您监控模型的更改,然后将这些更改推送到撤消堆栈中。撤消更改意味着从堆栈中拉出先前的值并将其推回模型中。

该库是为 WPF 编写的,但如果您的绑定设置正确,它也应该适用于 WinForms。此外,您可以在模型中挂钩回调,以便知道值何时因撤消/重做操作而更改。

该库包含文档、单元测试和一些示例的链接,展示了如何使用它。

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 2018-07-11
    • 2011-05-31
    • 2014-04-20
    相关资源
    最近更新 更多