かなり話題になっているようですが…
次の XAML があります。
<internal:MyCommandObject x:Name="CommandModel"/>
<Button DockPanel.Dock="Bottom" Command="{Binding DoAction, ElementName=CommandModel}">
<Button.ContextMenu>
<ContextMenu DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}">
<MenuItem Command="{Binding DoAction, ElementName=CommandModel}"/>
</ContextMenu>
</Button.ContextMenu>
Click Me
</Button>
は、MyCommandObjectその から動的コマンドを公開するコントロールDataContextです。あなたは次に何が来るか知っています。:)
基本的に、ボタン コマンドは完全に機能します。クリックすると、DoActionコマンドMyCommandObjectが完全に実行されます。ただし、メニュー項目のコマンドは実行されません。コントロールのビジュアル ツリーをトラバースできるようにコンテキスト メニューdatacontextを設定するなど、さまざまなトリックを試しましたが、何もしていません。placementTarget
RelativeSourceこれを機能させるには、とルーンの特定の調整がCommandTarget必要ですか?