我目前正在处理一个老旧的应用程序,它是用winforms编写的。为了在以后的版本中使用WPF,我们团队计划至少使用MVVM / Presentation模式,并将其绑定到winforms上...
我已经研究了这个主题,包括本网站上的帖子(我非常喜欢),总结下来,wpf的主要优点是:
- 在xaml中将控件与属性绑定。
- 将命令绑定到视图模型中的命令对象。
第一个特性很容易实现(在代码中),或者使用通用控件绑定器将所有控件绑定到窗体。
第二个特性有点难以实现,但如果你从所有控件中继承并添加一个命令属性(通过内部事件如单击触发),并将其绑定到ViewModel中的命令实例,则可以实现。
我目前知道的挑战是:
- 实现commandmanager(将根据需要触发命令的CanInvoke方法)。
- winforms仅支持一级数据绑定:数据源,数据成员,而wpf则更加灵活。
尝试实现此设计模式时,我是否错过了其他winforms相对于wpf缺乏的重要功能?
我确定你们中的许多人会推荐某种MVP模式,但对我来说,MVVM / Presentation模式是正确的选择,因为我将需要未来的WPF支持。
提前致谢, Erik。