我正在使用MVVM模型开发一个应用程序,但我已经达到了需要选择使用哪个框架的程度.
可能的选择包括:
根据您的经验,哪个更好?
我正在我的应用程序中使用RelayCommand.将代码放在viewmodel中非常棒,但是如何将键击绑定到我的命令?
RoutedUICommand具有InputGestures属性,当我按下击键时会自动调用该命令.(作为一个额外的好处,它甚至可以在MenuItem中显示击键.)不幸的是,RoutedUICommand的额外属性没有可重复使用的界面,所以我无法使RelayUICommand获得同样的魔力.
我已经尝试过使用InputBindings:
<Window.InputBindings>
<KeyBinding Key="PageUp" Command="{Binding SelectPreviousLayerCommand}"/>
</Window.InputBindings>
Run Code Online (Sandbox Code Playgroud)
但这会让我产生运行时异常,因为KeyBinding.Command不是依赖属性.(实际上,它抱怨的是KeyBinding甚至不是DependencyObject.)由于我的RelayCommand是我的ViewModel上的属性(与RoutedUICommand设计的静态字段相反),数据绑定是我所知道的唯一方式从XAML引用它.
你们怎么解决这个问题?将击键绑定到RelayCommand的最佳方法是什么?