如何访问作为资源一部分的 ContextMenu 中的 MenuItem

5
我正在尝试访问ContextMenu中的MenuItem,而该ContextMenu本身是控件资源的一部分。
                    <TreeView.Resources>
                        <ContextMenu x:Key ="GroupContext"  StaysOpen="true">
                        <MenuItem Header="Blast to Whole Group" Click="BlastGroup_Click"/>
                        </ContextMenu>
                        <ContextMenu x:Key ="ContactContext"  Style="{x:Null}" Loaded="ContextMenu_Loaded">
                            <MenuItem Header="Delete Contact" Click ="ContactDelete_Click"/>
                            <MenuItem x:Name="ModifyGroupMenuItem" Header="Modify Grouping"  Style="{x:Null}">
                            </MenuItem>
                        </ContextMenu>
                </TreeView.Resources>

我该如何获取 ModifyGroupMenuItem?
我找到了一种解决方案,可以获取 ContextMenu。具体方法请参考这篇文章:WPF control reference from xaml is not visible on the code side
1个回答

9
通过在Items集合中索引,或者查找逻辑树。
    ContextMenu menu = this.Resources["ContactContext"] as ContextMenu;

    MenuItem menuitemindex0 = menu.Items[0] as MenuItem;
    MenuItem menuitemindex1 = menu.Items[1] as MenuItem;

    MenuItem menuitembyname = LogicalTreeHelper.FindLogicalNode(menu, "ModifyGroupMenuItem") as MenuItem;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接