2010-07-16 111 views
0

我想將樣式中的ContextMenu的MenuItem的CommandTarget設置爲樣式目標,即樣式適用的控件。如何在樣式中的ContextMenu中綁定到樣式目標?

<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

您正在創建一個將由許多UI元素共享的單個ContextMenu對象。想想它的方法是你想要綁定到實際打開ContextMenu的那個。這在ContextMenu的PlacementTarget屬性上可用。從MenuItem中,您可以使用FindAncestor綁定來獲取ContextMenu:

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

我試過但未成功。不過,我使用了一種解決方法,只是省略了命令目標,並在上下文菜單打開時設置了重點控制。謝謝! – Tinro 2010-08-16 04:08:24