带有WinForms的MVVM /演示模型

我目前正在开发一个brownfield应用程序,它是用winforms编写的,作为在更高版本中使用WPF的准备,团队计划至少使用MVVM / Presentation模型,并将其与WinForms绑定。

我已经探索了这个主题,包括这个网站上的帖子(我非常喜欢),当煮沸时,wpf的主要优点是:

  • 绑定控件到xaml中的属性。
  • 将命令绑定到视图模型中的命令对象。
  • 第一个特性很容易实现(在代码中),或者使用绑定表单中所有控件的通用控件绑定器。

    第二个特性实现起来有点难,但是如果从所有控件继承并添加一个绑定到ViewModel中的命令实例的命令属性(由诸如click的内部事件触发)。

    我目前意识到的挑战是:

  • 实现一个commandmanager,(这会触发CanInvoke方法的命令,作为必要条件。
  • winforms只支持一层数据绑定:datasource,datamember,wpf更加灵活。
  • 当我尝试实现这种设计模式时,我是否缺少winform与wpf相比缺乏的其他任何主要功能?

    我相信你们中许多人会推荐某种MVP模式,但MVVM /演示模式是我的选择,因为我希望未来的WPF支持。

    在此先感谢,Erik。


    请看看Update Controls .NET。 它是Winforms,WPF和Silverlight的开源库,可随着数据的变化保持控件的最新状态。 您现在可以开始将它用于Winforms,然后转换到WPF而不更改数据模型或视图模型代码。

    不幸的是,它不能解决Winforms命令绑定问题。 您的按钮单击事件不会从Winforms移植到WPF。 但它确实处理了数据绑定问题。


    您可能会发现WAF Windows窗体适配器很有趣。 它演示了如何在Windows窗体应用程序中应用Model-View-ViewModel(MVVM)模式。 适配器实现为Windows窗体中缺少的命令支持提供了一个解决方案。

    链接地址: http://www.djcxy.com/p/29173.html

    上一篇: MVVM/Presentation Model With WinForms

    下一篇: IDataErrorInfo in winforms