2014-05-23 1 views
0

사용자가 SelectionDisplay로 이동 한 경우에만이 버튼을 표시 할 수 있습니까?버튼을 특정 창에서만 표시하는 방법은 무엇입니까?

<local:KinectHoverButton Grid.Column="0" Style="{StaticResource KinectHoverButtonScrollLeftStyle}" Click="PageLeftButtonClick" IsEnabled="{Binding ElementName=ControlsBasicsWindow, Path=PageLeftEnabled}"/> 
<local:KinectHoverButton Grid.Column="2" Style="{StaticResource KinectHoverButtonScrollRightStyle}" Click="PageRightButtonClick" IsEnabled="{Binding ElementName=ControlsBasicsWindow, Path=PageRightEnabled}"/> 

지금 버튼은 모든 곳에서 공개되어 있으며 한 곳에서만 공개됩니다.

이 유형의 속성을 확인한 다음 databinding을 통해 .xaml에 입력하여이 작업을 수행 할 수 있음을 알고 있습니다.

public bool IsSelectionDisplay 
    { 
     get { return IsSelectionDisplay; } 
     set 
     { 
      if (//condition) 
       { 
       //code 

       } 
     } 
    } 

내가 알지 못하는 것은 단추가 특정 창에서만 표시되도록 "setter"에서 작성해야하는 내용입니다.

http://i61.tinypic.com/ic4nc8.png

http://i58.tinypic.com/2ius7c.png

+1

귀하의 게터 인해 무한 재귀 스택 오버플로 이어질 것입니다. 실제로 * 당신이 * 거기에서 돌아 오기를 원하십니까? 의존성 프로퍼티의 값 또는 프라이빗 필드의 값? 두 경우 모두 세터의 내용이 분명해야합니다. –

+0

개체 외부에서 설정할 사항이 없으면 설정자가 필요하지 않습니다. –

답변

0

당신은 값 변환기를 사용할 수 있습니다. 그래서 값 변환기에 그런 가시성 속성

Visibility="{Binding RelativeSource={RelativeSource FindAncestor, 
     AncestorType={x:Type Window}}, Path=Name}" 

을 결합, 그런 짓을 :

if (value.ToString() == "Window1") return Visibility.Visible; 
관련 문제