2011-08-25 3 views
0

Visibility="{Binding Path=Visibility, ElementName=btnUndo}"/>XAML 메뉴 항목 가시성 내가 다른 컨트롤 가시성 (btnUndo)에 메뉴 아이템의 가시성을 결합하려고

작동하지 않습니다. 가시성을 제어

는 트리거 나도 같은 트리거에 MenuItem의 결합 시도

 <Style x:Key="undoStyle"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding SelectedItem.isEdited, ElementName=lvBatches}" Value="True"> 
        <Setter Property="FrameworkElement.Visibility" Value="Visible"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding SelectedItem.isEdited, ElementName=lvBatches}" Value="False"> 
        <Setter Property="FrameworkElement.Visibility" Value="Collapsed"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 

에 바인딩되어 있지만, 그 중 하나가 작동하지 않았다.

제안 사항?

+0

'ContextMenu' 또는 일반'Menu'입니까? ContextMenu가 컨트롤의 나머지 부분과 다른 시각적 트리 인 adorner 레이어에 있다고 생각합니다. – Rachel

+0

ContextMenu - 내 XAML의 불쾌감이 다시 나를 물어 뜯는다고 알려줍니다 ... – Yatrix

답변

1

ContextMenus이 Adorner 레이어에 존재합니다.이 레이어는 UI 레이어와 동일한 비주얼 트리가 아닙니다.

MenuItem에 다음과 같이 바인딩 할 수 있습니다. Control이 첨부 된 ContextMenu이 반환되며 찾고있는 데이터를 찾을 수 있습니다.

{Binding Path=PlacementTarget, RelativeSource= 
    {RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}} 

예를 들어, 당신은 그것이을 찾고 객체를 찾을 때까지 지정된 컨트롤에서 VisualTree을 가로 지르는 변환기를 만들 수 있습니다, 또는 당신은 DataContext를 결합하여 뷰 모델 내에서 특정 값을 볼 수 있었다.

+0

> 나를. 고마워, 레이첼. – Yatrix