C# WPF HierarchycalDataTemplate上下文菜单未打开

C# WPF HierarchycalDataTemplate上下文菜单未打开,c#,wpf,C#,Wpf,我有一个基于数据类型加载的treeview。如果Hierarchy DataTemplates嵌套如下,则cMenuBSTool ContextMenu将显示在第一个子InventoryBSVM上,但不会显示在第一个子InventoryBSVM的任何InventoryBSVM子级上: <HierarchicalDataTemplate DataType="{x:Type v:ServiceGWDVM}" ItemsSource="{Binding Inventory}" ItemTempl

我有一个基于数据类型加载的treeview。如果Hierarchy DataTemplates嵌套如下,则cMenuBSTool ContextMenu将显示在第一个子InventoryBSVM上,但不会显示在第一个子InventoryBSVM的任何InventoryBSVM子级上:

<HierarchicalDataTemplate DataType="{x:Type v:ServiceGWDVM}" ItemsSource="{Binding Inventory}" ItemTemplateSelector="{StaticResource ToolSelector}">
    <TextBlock Text="{Binding Name}" Style="{StaticResource ServiceStyle}" ContextMenu="{StaticResource cMenuServiceGWD}"/>
    <HierarchicalDataTemplate.ItemTemplate>
        <HierarchicalDataTemplate DataType="{x:Type v:InventoryBSVM}" ItemsSource="{Binding ChildItems}" ItemTemplateSelector="{StaticResource ToolSelector}">
            <TextBlock Text="{Binding Name}" Style="{StaticResource ToolStyle}" ContextMenu="{StaticResource cMenuBSTool}"/>
        </HierarchicalDataTemplate>
    </HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>

如果将InventoryBSVM HierarchycalDataTemplate放置在ServiceGWDVM HierarchycalDataTemplate之外,则不会为任何InventoryBSVM节点显示cMenuBSTool上下文菜单。其他InventoryBSVM的InventoryBSVM子级的数量事先未知。上下文菜单非常简单,如下所示:

<ContextMenu x:Key="cMenuBSTool">
    <MenuItem Header="Delete Tool" Command="{Binding CmdDelete}">
        <MenuItem.Triggers>
            <EventTrigger RoutedEvent="MenuItem.Click"/>
        </MenuItem.Triggers>
    </MenuItem>
    <MenuItem Header="Create Tool" Command="{Binding CmdCreate}" CommandParameter="{StaticResource wizCreateBS}">
        <MenuItem.Triggers>
            <EventTrigger RoutedEvent="MenuItem.Click"/>
        </MenuItem.Triggers>
    </MenuItem>
</ContextMenu>


我希望我遗漏了一些简单的东西。我已经花了两天的时间在这上面了,我被卡住了。这是我关于堆栈溢出的第一篇文章,如果有任何帮助,我将不胜感激。

您在输出窗口中看到任何错误吗?您是否尝试过窥探该项目是否具有关联菜单?既然已经定义了
ItemTemplate
,为什么还要有
ItemTemplateSelector
?为什么菜单项上有空的
EventTrigger
?输出窗口中没有错误。我正在移动InventoryBSVM HierarchycalDataTemplate,看看是否可以让它工作。这就是ItemTemplateSelector和HiearchicalDataTemplate.ItemTemplate的原因。我卸下了事件触发器,谢谢。它什么也没做。你能推荐一个“窥探者”吗?如果你使用的是Visual Studio 2015,你可以使用Live Visual Tree。否则我通常使用。顺便说一句,我在一个空项目中测试了您的代码(使用我自己的VM类,因为我不知道您的VM类是什么样子),删除了
ItemTemplateSelector
EventTrigger
,效果很好。我将尝试Snoop,看看我发现了什么。谢谢