如何绑定菜单项的IsChecked属性

时间:2014-08-25 09:42:35

标签: c# wpf wpf-controls

这里是我绑定菜单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>

这是上下文菜单

<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>

现在我想要在检查上下文菜单项时,将自动检查主菜单View。但我的代码不起作用。请解释一下原因。

1 个答案:

答案 0 :(得分:0)

x:名称在资源中不起作用。 ElementPath中具有指定名称的元素不存在。这就是绑定不起作用的原因。你无法从后面的代码访问TermMenu。您应该将两者绑定到视图模型,如@wilford sugested。