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