我想在Prism4桌面应用程序中为DelegateCommand启用KeyBinding。例如,在我的XAML文件中,我有:
<Grid.InputBindings>
<KeyBinding Gesture="CTRL+A" Command="{Binding Command3}"/>
</Grid.InputBindings>
<StackPanel>
<Button Grid.Row="0" Grid.Column="1" Content="HitMe" prism:Click.Command="{Binding Command3}" />
</StackPanel>
在我的ViewModel中我有这个:
public DelegateCommand<string> Command3 { get; private set; }
private void ExecuteCommand3(string commandParameter)
{
Debug.WriteLine("ExecuteCommand3");
}
private bool CanExecuteCommand3(string commandParameter)
{
return true;
}
当我按下HitMe按钮时,调试行输出但按下CTRL + A无效。
我考虑使用TestMvvmExample2341中的CommandReference类,但这似乎复制了Prism 4机制的功能。
是否有一种简单的方法让CTRL + A在Prism4中调用Command3?
答案 0 :(得分:2)
就是这样,也许你的问题与你视图中的焦点有关,试试这个:
在运行时将焦点设置在Button上,然后应用击键。另请查看这些帖子:
WPF MVVM KeyBinding not being recognized right away and not always working
http://joyfulwpf.blogspot.com/2009/05/mvvm-commandreference-and-keybinding.html