C# 将键盘快捷键绑定到WPF中视图模型中的命令

C# 将键盘快捷键绑定到WPF中视图模型中的命令,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个应用程序,其中有一个UserControl,其中有一个工具栏。此工具栏有一个按钮Execute,该按钮将其命令绑定到viewmodel作为属性公开的ICommand派生类 <Button Grid.Row="0" Command="{Binding ExecuteCommand}">Execute</Button> 执行 现在,我还想将其绑定到键盘快捷键(F5)。这需要在UserControl的上下文中绑定,因为它仅在此时可见此UserControl时才适用

我有一个应用程序,其中有一个
UserControl
,其中有一个工具栏。此工具栏有一个按钮
Execute
,该按钮将其命令绑定到viewmodel作为属性公开的
ICommand
派生类

<Button Grid.Row="0" Command="{Binding ExecuteCommand}">Execute</Button>
执行
现在,我还想将其绑定到键盘快捷键(
F5
)。这需要在
UserControl
的上下文中绑定,因为它仅在此时可见此UserControl时才适用

另一个选项是将它绑定到文本框的
键下,该文本框实际上包含要执行的文本,但是当谈到如何将事件从控件路由到viewmodel中的命令时,我真的很不确定,因为usercontrol背后的代码中没有真正难看的漏洞


任何指点都很感激

顺便说一句,没有直接绑定到按键的方法,但是有一些解决方法。看起来其他人也有这个问题,你看到了吗?我的另一个建议是调查。

还有另一个答案因为某种原因消失了。这很好:

<UserControl.InputBindings>
  <KeyBinding Key="F5" Command="{Binding ExecuteCommand}" />
</UserControl.InputBindings>


如果可能的话,我想表扬那个家伙。请再次出现:)

可能重复的问题是相同的,但实际上不是同一个问题。这将讨论如何绑定标准命令,同时将自定义命令绑定到视图模型中的属性。解决方案是相似的,但仍然是不同的。@DanielHilgarth:是的,我不认为它是重复的,或者至少在另一个问题中提供的解决方案很差(它是解决MVVM问题的WinForms解决方案)@sixlettervariables:我在问题或问题中没有看到任何winformsanswer@DanielHilgarth:我的意思是WinForms作为一个形容词,意思是低质量或对WPF/MVVM没有帮助。