这似乎是一个非常受欢迎的话题,但......
我有以下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>
Run Code Online (Sandbox Code Playgroud)
现在,MyCommandObject是一个从其公开动态命令的控件DataContext.你知道接下来会发生什么.:)
基本上,按钮命令工作正常 - 当我单击它时,DoAction命令就MyCommandObject完美地执行了.但是,menuitem中的命令不会被执行.我尝试过各种手段,例如设置上下文菜单datacontext是placementTarget这样它可以遍历控制等的可视化树,但没有在做.
我需要什么特定的对齐RelativeSource和CommandTarget符文才能使它工作?