简体   繁体   English

如何绑定菜单项的IsChecked属性

[英]How to Bind IsChecked Property of Menu item

Here My code to bind IsChecked property of menu. 在这里,我的代码绑定菜单的IsChecked属性。

<MenuItem Header="_View">
                <MenuItem  IsCheckable="True" IsChecked="{Binding ElementName=TermMenu, Path=IsChecked}" Header="Term" />
                <MenuItem  IsCheckable="True" IsChecked="True" Header="Key"  />
                <MenuItem  IsCheckable="True" IsChecked="True" Header="Hand"  />
                <MenuItem  IsCheckable="True" IsChecked="True" Header="Rule"  />
            </MenuItem>

Here is the context menu 这是上下文菜单

<ContextMenu x:Key="DataGridColumnHeaderContextMenu" >
                    <MenuItem x:Name="TermMenu" IsCheckable="True" IsChecked="True" Header="Key Term"  />
                    <MenuItem x:Name="Key" IsCheckable="True" IsChecked="True" Header="Key Term Description"  />
                    <MenuItem x:Name="ShortHand" IsCheckable="True" IsChecked="True" Header="Hand"  />
                    <MenuItem x:Name="Rule" IsCheckable="True" IsChecked="True" Header="Rule"  />

                </ContextMenu>

Now I want when the context menu item is check the main menu View will be checked automatically. 现在,我要检查上下文菜单项时,将自动检查主菜单“视图”。 But my code is not working. 但是我的代码无法正常工作。 Please explain me why. 请解释一下为什么。

x:Name does not work in resources. x:名称在资源中不起作用。 the element with the specified name in ElementPath does not exist. 在ElementPath中具有指定名称的元素不存在。 this is why the binding doesn't work. 这就是为什么绑定不起作用的原因。 you can't access TermMenu from the code behind either. 您都无法通过任一代码访问TermMenu。 You should bind both to a view-model as @wilford sugested. 您应该将两个都绑定到@wilford提示的视图模型。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM