Como acessar um controle de um item de menu ContextMenu através da árvore visual?
Este parece ser um tópico muito popular, mas ...
Eu tenho o seguinte 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>
Agora,MyCommandObject
é um controle que expõe comandos dinâmicos de suaDataContext
. Você sabe o que vem a seguir. :)
Basicamente, o comando button funciona perfeitamente - quando clico nele, oDoAction
comando noMyCommandObject
é executado perfeitamente. No entanto, o comando no menuitem não é executado. Eu tentei vários truques, como definir o menu de contextodatacontext
ser oplacementTarget
então pode atravessar a árvore visual dos controles e assim por diante, mas nada está fazendo.
Que alinhamento particular deRelativeSource
eCommandTarget
runas eu preciso fazer isso funcionar?