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