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?

questionAnswers(1)

yourAnswerToTheQuestion