コンテキストメニューのメニュー項目をビューモデルのコマンドにバインドできないようです。contextmenu がビジュアル ツリーに存在しないことはわかっています。テスト目的で、ボタンで同じコマンドを 2 回バインドしました。最初のバインディングは機能しますが、コンテキスト メニューで 2 番目のバインディングを取得してバインドできます。出力にバインド エラーが表示されます。誰かが何か考えがありますか?
<HierarchicalDataTemplate DataType="{x:Type inf:OSiteEquipment}" ItemsSource="{Binding Path=SubSystems, Converter={StaticResource subsystemConverter}}" >
<Button HorizontalContentAlignment="Left"
Command="{Binding DataContext.CommandOpenSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
CommandParameter="{Binding}">
<TextBlock Text="{Binding Path=PartData.Name}" TextTrimming="CharacterEllipsis" />
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Add Category" Command="{Binding Path=Parent.PlacementTarget.Tag.CommandOpenSelected, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
</ContextMenu>
</Button.ContextMenu>
</Button>
</HierarchicalDataTemplate>