当我按下Alt + S时,这个MenuItem不会切换到检查,为什么?
<Menu>
<MenuItem Header="_Other">
<MenuItem
Header="_Show Expanded Names ?"
IsCheckable="True"
StaysOpenOnClick="True"
InputGestureText="Alt+S"
IsChecked="{Binding ShowExpandedName}" />
</MenuItem>
</Menu>
注意:ShowExpandedName在DataContext中定义如下。当我用鼠标点击它时,会正确检查MenuItem。
bool _ShowExpandedName;
public bool ShowExpandedName
{
get { return _ShowExpandedName; }
set
{
if (value != _ShowExpandedName)
{
_ShowExpandedName = value;
this.NotifyPropertyChanged("ShowExpandedName");
}
}
}
答案 0 :(得分:0)
您需要将ShowExpandedName设为dependencyProperty,以便将其值的更改报告给menuItem
看那里:
http://msdn.microsoft.com/en-us/library/system.windows.dependencyproperty.aspx
答案 1 :(得分:0)
我想我找到了:
注释
此属性不会将输入手势与菜单项相关联,只是将文本添加到菜单项。有关如何将命令与菜单项关联的信息,请参阅:命令。
答案 2 :(得分:0)
“_”技巧应该适用于可见的菜单项。在这种情况下,我必须首先打开Alt-O打开“_Other”子菜单,然后按S选择项目“显示扩展名称?”。 我想这样做的道理是使用“”与向命令本身添加键绑定不同!