委托命令和路由命令有什么区别?
我读了一篇文章说在MVVM上使用Delegate Command而不是Routed Command。
那么当我们使用MVVM时,Delegate Command对Routed Command有什么好处?
答案 0 :(得分:11)
使用DelegateCommand(a.k.a.RelayCommand)的一些优点是:
1)需要更少的XAML /代码来支持它们(不需要CommandBindings)
2)可以在ViewModel类中轻松编写命令实现代码
3)他们不依赖于UI元素树来正常工作,这也有助于提高性能
由于许多第三方UI控件都使用路由命令,因此大多数开发人员在依赖这些控件时最终会使用路由命令。
如果您最终需要使用路由命令,请查看我的Using RoutedCommands with a ViewModel in WPF文章,了解简化操作的方法。
答案 1 :(得分:3)
RoutedCommands就像名称所示,路由,这意味着他们向上或向下移动VisualTree并检查它们是否有CommandBindings
。请参阅Routed Events Overview和Commanding Overview。
另见各个类的参考文献: