我在我的应用程序中使用了RelayCommand。将代码放入视图模型非常棒,但是如何将按键绑定到我的命令?键入一个继电器命令
RoutedUICommand有它的InputGestures属性,当我按下按键时,该命令会自动调用该命令。 (作为额外的好处,它甚至可以在MenuItem中进行按键显示。)不幸的是,RoutedUICommand的额外属性没有可重用的接口,所以我无法制作一个具有相同魔法的RelayUICommand。
我用化InputBindings已经尝试过:
<Window.InputBindings>
<KeyBinding Key="PageUp" Command="{Binding SelectPreviousLayerCommand}"/>
</Window.InputBindings>
但是,这让我一个运行时异常,因为KeyBinding.Command不是一个依赖项属性。 (实际上,它所抱怨的是KeyBinding甚至不是一个DependencyObject。)因为我的RelayCommand是ViewModel的一个属性(与RoutedUICommand的静态字段相对),数据绑定是我知道的唯一方法从XAML引用它。
你们是怎么解决这个问题的?将按键绑定到RelayCommand的最佳方式是什么?
在http://tomlev2.wordpress.com/2009/10/26/vs2010-binding-support-in-inputbindings/ – 2010-04-20 14:34:48