首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MVVM路由和中继命令

MVVM路由和中继命令
EN

Stack Overflow用户
提问于 2009-03-16 11:20:05
回答 2查看 52.8K关注 0票数 77

RoutedCommandRelayCommand有什么区别?在MVVM模式中什么时候使用RoutedCommand,什么时候使用RelayCommand?

EN

回答 2

Stack Overflow用户

发布于 2009-03-19 20:34:48

RoutedCommand是WPF的一部分,而RelayCommand是由WPF的成员Josh Smith创建的;)

不过,说真的,RS Conley描述了一些不同之处。关键的区别在于,RoutedCommand是一种ICommand实现,它使用RoutedEvent在树中路由,直到找到命令的CommandBinding,而RelayCommand不进行路由,而是直接执行某些委托。在M-V-VM场景中,RelayCommand (棱镜中的DelegateCommand)可能是更好的选择。

票数 69
EN

Stack Overflow用户

发布于 2009-03-16 12:53:48

不同之处在于RelayCommand可以接受委托。您可以在ViewModel外部定义RelayCommand。然后,ViewModel可以在创建命令并将命令绑定到UI对象(如控件)时向命令添加委托。委托反过来可以访问ViewModel的私有变量,因为它们是在View Model本身的作用域中定义的。

它用于减少ViewModel中包含的代码量,因为趋势是将路由的命令定义为ViewModel中的嵌套类。这两者的功能在其他方面是相似的。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/650010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档