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没有帮助。