У меня есть дерево с иерархическим шаблоном данных, и я пытаюсь установить DataContext для ContextMenu, поэтому я мог бы связывать с ним команды. Я провел исследование и знаю, что ContextMenu не наследует DataContext своего родителя. Я старался следить за этими сообщениями: How to set the RelativeSource in a DataTemplate that is nested in a HierarchicalDataTemplate?Команда bind contextmenu в древовидном представлении с шаблоном иерархических данных
How to bind to the DataContext of a HierarchicalDataTemplate from its ItemTemplate XAML? но все еще не может заставить его работать. Любая помощь будет оценена по достоинству. Вот мой пример кода:
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type viewModels:SiteViewModel}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
</StackPanel.Resources>
<Image Width="16" Height="16" Margin="3,0" />
<TextBlock Text="{Binding SiteName}" />
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type viewModels:LevelViewModel}" ItemsSource="{Binding Children}" >
<StackPanel Orientation="Horizontal" >
<Image Width="16" Height="16" Margin="3,0" />
<TextBlock Text="{Binding LevelName}" >
<TextBlock.ContextMenu >
<ContextMenu>
<MenuItem Header="Test" Command="{Binding ?????????" CommandParameter="{Binding}"/>
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>