2017-08-17 75 views
0

我有以下情形:将ICommand绑定到MenuItem并指定快捷方式

具有多个ICommand(RelayCommand)属性的ViewModel。这些属性绑定到视图中的菜单项。一些菜单项应该有一个键盘快捷键。为此,我尝试使用窗口的InputBindings。这工作 - 但我必须手动分配InputGestureText到MenuItem。所以我想那里有绑定一个ICommand的一个菜单项,并分配一个快捷一种更好的方式...

// ViewModel 
class MyViewModel: ViewModelBase { 
    public ICommand TestCommand {get; set;} 
} 

// View 
<Window...> 

    <Window.InputBindings> 
     <KeyBinding Command="{Binding TestCommand}" Key="R" Modifiers="Control" /> 
    </Window.InputBindings> 

    // ... 
    <MenuItem Name="MenuItemTest" Command="{Binding TestCommand}" 
       Header="Test" InputGestureText="Ctrl + R" /> 

</Window> 

回答

2

InputGestureText属性只是用来设置一个文本描述输入姿态,将调用命令与命令关联。

它确实联想输入手势莫名其妙的菜单项;它只是添加文本到菜单项。这是记录在MSDN:https://msdn.microsoft.com/en-us/library/system.windows.controls.menuitem.inputgesturetext(v=vs.110).aspx

因此,没有,没有这样做,你在做什么:)

+0

这是我想回去的WinForms的时刻之一,没有更好的办法:/ – Michael

+0

为什么呢?由于在指定的WinForms一个快捷方式菜单项显示分配的快捷方式 - 和我没有指定一个文本:)约在缺少给予好评:请不要误会我的意思,你回答我的问题,我接受你的答案。但是,你只是证实了我这样做是正确的,有没有其他办法,所以你没有提供一个“解决方案”我的问题。但我会为你的答案投票... – Michael