我正在开发 WPF 应用程序,并且非常了解命令模式,但我发现 MVVM 命令模式有几种不同的实现。 Josh Smith 在他的 WPF 示例应用程序中实现了DelegateCommand
来自棱镜,以及CommandBindings
执行。
我的问题是,在 MVVM 中使用命令的普遍接受的最佳实践是什么?我的应用程序使用 Prism 所以DelegateCommand
可供我们使用。
我团队的开发人员正在争论哪种方法是“最好的”。有些人不喜欢为每个命令生成大量 .cs 文件,其他人则喜欢通过以下方式连接所有内容CommandBindings
。我不知所措。任何人都可以透露一些信息吗?
嗯 - 我认为没有the解决方案。
CommandBindings 不是那么容易测试的,并且引入了对 ViewModel 中 WPF 类的依赖,这不是很好。
所以我不会使用它们。
在我看来,DelegateCommand 和 CommandSinkCommand(Josh Smith 的解决方案)都是好方法。它们并没有真正的不同,也没有一个比另一个更优越。
不过,我注意到,当命令路由变得更加复杂时(尤其是涉及 DataTemplates 时),CommandSink 版本并不总是有效。
您甚至可以将它们结合起来:使用 DelegateCommand 并另外使用 JoshSmith 版本 - 这样您就可以结合两者的优点。
您唯一需要的是一些辅助类 - 实现起来并不难。
更重要的是应用程序中的一致性:如果您决定要使用什么,则应该在整个应用程序中遵循这种方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)