Jak uzyskać dostęp do formantu z menu kontekstowego ContextMenu poprzez drzewo wizualne?
To wydaje się być dość popularnym tematem, ale ...
Mam następujący 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>
Teraz,MyCommandObject
jest kontrolką, która udostępnia dynamiczne polecenia ze swojegoDataContext
. Wiesz, co będzie dalej. :)
Zasadniczo polecenie przycisku działa doskonale - po kliknięciu goDoAction
polecenie naMyCommandObject
zostaje perfekcyjnie wykonany. Jednak polecenie w menuitem nie zostanie wykonane. Próbowałem różnych sztuczek, takich jak ustawianie menu kontekstowegodatacontext
byćplacementTarget
więc może przejść przez wizualne drzewo kontrolek i tak dalej, ale nic się nie dzieje.
Jakie szczególne wyrównanieRelativeSource
iCommandTarget
runy czy muszę to zrobić?