委派命令和路由命令

时间:2011-04-19 01:28:22

标签: wpf mvvm

委托命令和路由命令有什么区别?

我读了一篇文章说在MVVM上使用Delegate Command而不是Routed Command。

那么当我们使用MVVM时,Delegate Command对Routed Command有什么好处?

2 个答案:

答案 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 OverviewCommanding Overview

另见各个类的参考文献:

DelegateCommand<T>
RoutedCommand