【发布时间】:2012-07-05 04:34:11
【问题描述】:
这似乎是一个很受欢迎的话题,但是...
我有以下 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 的动态命令。你知道接下来会发生什么。 :)
基本上,按钮命令完美运行 - 当我单击它时,MyCommandObject 上的 DoAction 命令完美执行。但是,菜单项中的命令不会被执行。我尝试了各种技巧,例如将上下文菜单datacontext 设置为placementTarget,以便它可以遍历控件的可视化树等等,但什么也没做。
我需要RelativeSource 和CommandTarget 符文的什么特定对齐才能使其工作?
【问题讨论】:
标签: wpf xaml binding contextmenu relativesource