Как я могу создать контекстное меню в DataTrigger в дереве? Приведенный ниже код не вызывает контекстное меню, например, я хочу, чтобы меню было также «Символы». Хотя у меня есть контекстное меню на HierarchicalDataTemplate, которое отлично работает, но только на дочерних элементах. Корень на TreeView не имеют менюКонтекстное меню в Treeview
<HierarchicalDataTemplate x:Key="NameTemplate" ItemsSource="{Binding Path=ChildPlanner}">
<HierarchicalDataTemplate.ItemContainerStyle>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding IsFolder}" Value="True">
<Setter Property="TreeViewItem.ContextMenu" Value="{StaticResource AddNewSymbol}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</HierarchicalDataTemplate.ItemContainerStyle>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="{Binding Path=Name}" FontWeight="Bold">
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
<TreeView Name="SymbolsTreeView">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsFolder}" Value="True">
<Setter Property="ContextMenu" Value="{StaticResource AddNewSymbol}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
<TreeViewItem Header="Symbols" IsExpanded="True" ItemsSource="{Binding PlannerTreeList}" ItemTemplate="{StaticResource NameTemplate}"/>
</TreeView>
Вообразите мое дерево
Symbols
Current
Menu1Folder
Menu2Folder
Menu2Item
Menu2AnotherItem
Current1Item
Меню HierarchicalDataTemplate работает для menu1folder года, который нормально. Но я хочу, чтобы он работал для Current1Item, Current и Symbols. Поскольку Current1Item не папка, там не должно быть меню для него, но и тока Символы папки
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="ContextMenu" Value="{StaticResource AddNewSymbol}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsFolder,RelativeSource={RelativeSource Self}}" Value="False">
<Setter Property="ContextMenu" Value="{x:Null}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TreeView.Resources>
У вас есть разные DataTemplates для разных типов объектов? – Krishna
@ Кришна Да. У меня есть два отдельных источника. HierarchicalDataTemplate использует ChildPlannerList, а Treeview использует PlannerTreeList – user2837961
Я все еще не уверен, как выглядит ваш макет. Но см. Мой ответ и дайте мне знать, если это поможет. В противном случае, пожалуйста, дайте дополнительную информацию об иерархии вашего дерева, и я (или кто-то еще) мог бы помочь – Krishna