Joe*_*ite 9 routed-commands mvvm caliburn.micro
RoutedCommand和RoutedUICommand有很多功能.有文本和键盘手势的烘焙支持.您可以将RoutedUICommands的集合绑定到Menu的ItemsSource,它将自动为您创建和绑定菜单项.开箱即用的控件自动支持某些命令(剪切,复制,粘贴).
但是,每当我使用MVVM时,我发现路由命令都不合适,因为我必须为每个命令编写重复的样板XAML和代码隐藏.当我在做MVVM时,我通常会使用RelayCommand而不是路由命令.这在某些时候是一个充分的解决方法,但它有缺点 - 例如,关键手势变得更加复杂.
但在看完Rob Eisenberg的"构建你自己的MVVM框架"会议之后,我不再满足于继电器命令及其缺点.路由命令的唯一问题是重复的样板代码,一旦将重复代码分解到框架中并应用约定,似乎没有任何理由不在MVVM中使用路由命令.
从技术上讲,看起来这并不难.框架应该只需要绑定到视图的CommandManager.CanExecute和Executed事件,并应用约定来查找ViewModel上的方法和属性 - 例如,执行Cut命令时,查找ExecuteCut方法(以及CanExecuteCut属性) )在ViewModel上.我可以构建自己的MVVM框架,使这很容易.
但我的问题是,是否已经有与RoutedCommand一起使用的MVVM框架?我唯一熟悉的唯一MVVM框架是Caliburn.Micro,它目前不支持这种方式的路由命令(这让我感到惊讶,因为它确实支持它自己的动作冒泡).
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |