TreeViewItems に ContextMenu を持つ TreeView があります。TreeViewItems を右クリックすると、contextMenu が非常にうまく表示されます。しかし、ContextMenu を親アイテムに表示したくありません。子ノードにのみ表示されます。TreeView には階層が 1 つしかありません。つまり、N 人の親が M 人の子をすべて同じレベルに持つことになります。これは、TreeView と ContextMenu の XAML です。
<TreeView Margin="2,0,0,0" ItemsSource="{Binding SourceData}" Width="390">
<TreeView.ItemContainerStyle >
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsSelected" Value="{Binding DataContext.IsSelected, Mode=TwoWay, RelativeSource={RelativeSource Self}}" />
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu Name="contextMenu" DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}" >
<MenuItem Name="menuItem" Header="Rename" Command="{Binding RenameCommand}" />
</ContextMenu>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle >