我想在Style中将ContextMenu的MenuItem的CommandTarget设置为Style目标,即样式适用的控件。
<Style x:Key="AAA" TargetType="{x:Type BBB}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Command="{x:Static CCC}" CommandTarget="{Binding ???}"/>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
我尝试过RelativeSource TemplatedParent,Self,FindAncestor,但都没有。有没有其他方法可以选择目标?
答案 0 :(得分:0)
您正在创建一个将由许多UI元素共享的单个ContextMenu对象。考虑它的方法是你想绑定到实际打开ContextMenu的那个。这可以在ContextMenu的PlacementTarget属性中找到。从MenuItem,您可以使用FindAncestor绑定来访问ContextMenu:
<MenuItem Command="{x:Static CCC}"
CommandTarget="{Binding PlacementTarget,
RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>