如何在Style中的ContextMenu中绑定到Style目标?

时间:2010-07-16 11:19:17

标签: wpf binding

我想在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,但都没有。有没有其他方法可以选择目标?

1 个答案:

答案 0 :(得分:0)

您正在创建一个将由许多UI元素共享的单个ContextMenu对象。考虑它的方法是你想绑定到实际打开ContextMenu的那个。这可以在ContextMenu的PlacementTarget属性中找到。从MenuItem,您可以使用FindAncestor绑定来访问ContextMenu:

<MenuItem Command="{x:Static CCC}"
    CommandTarget="{Binding PlacementTarget,
        RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>