MVVM 中 WPF 命令的可接受模式是什么?

2024-02-19

我正在开发 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(使用前将#替换为@)

MVVM 中 WPF 命令的可接受模式是什么? 的相关文章

随机推荐