Как получить доступ к элементу управления из меню ContextMenu через визуальное дерево?

Это, кажется, довольно популярная тема, но ...

У меня есть следующий 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 руны мне нужно, чтобы это заработало?

Ответы на вопрос(1)

Ваш ответ на вопрос