这似乎是一个相当热门的话题,但是...
我有以下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
做符文我需要得到这个工作?