2014-11-04 4 views
1

DockPanel.Style DataTrigger를 트리거하는 별도의 UserControl 내에있는 ToggleButton에 액세스하려고합니다.DataTrigger 다른 네임 스페이스 내의 ToggleButton에 바인딩

<ToggleButton x:Name="OneToggleButton" 
      Content="Click me..." /> 

<DockPanel> 
    <DockPanel.Style> 
    <Style> 
     <Setter Property="UIElement.Visibility" 
       Value="Visible"/> 
     <Style.Triggers> 
     <DataTrigger Binding="{Binding IsChecked, 
        ElementName=DetailsBookToggleButton}" 
        Value="False"> 
      <Setter Property="UIElement.Visibility" 
        Value="Collapsed"/> 
     </DataTrigger> 
     </Style.Triggers> 
    </Style> 
    </DockPanel.Style> 

    <TextBlock DockPanel.Dock="Top" Text="..." /> 

</DockPanel> 

하지만 지금은 다른 파일에 ToggleButton을 이동 (다른 네임 스페이스)는 아무튼 : 나는 ToggleButton을하고 DockPanel 모두, 같은 공간에있을 때 작동 만든 방법은 다음과

입니다 더 이상 일하지 않아. ElementName (나는 그것을 이해함)은 동일한 파일 내의 요소들에 대해서만 작용한다. 다른 ToggleButton의 IsChecked에 대한 바인딩을 다른 파일로 관리하려면 어떻게해야합니까?

아무나 제안 사항이 있으십니까? 위대한 것 :

답변

0

참고로, 당신이 찾고있는 용어는 "이름 범위"이며, 다른 이름 범위에 정의 된 요소를 참조 할 방법이 없습니다. 틀림없이, 이 허용되지 않아야합니다.

하나의 UI 요소를 다른 요소에 바인딩하는 대신 두 UI 요소 모두를 뷰 모델, 공통 조상 요소 또는 종속성 속성 상속을 통해 공통 속성에 바인딩하는 것이 좋습니다.

관련 문제