2011-11-08 4 views
0

여러 항목에 동일한 데이터 트리거를 적용해야합니다. 데이터 트리거 문제는 내가/쇼를 축소하려는, 버튼 등 체크 박스를, 모든 라벨, 텍스트 필드에 복사해야한다는 것입니다여러 개의 서로 다른 항목에 동일한 데이터 트리거를 적용하는 방법?

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

이며,이 버튼 하나이며, 최종 레이아웃입니다 꽤 많은 버튼이있어서 더 좋은 방법이 있나요? (클래스와 비슷한 것)

또한 트리거는 버튼 등의 항목과 완벽하게 작동하지만 어떤 패널, 도킹 패널, 그리드, 캔버스 등 어떤 아이디어?

Visual Studio 2010은 .NET 4.0을 사용합니다.

답변

2

첫 번째 질문은 이것이 DataTrigger 인 이유입니다. BooleanToVisibilityConverter을 사용하면 VisibilityIsChecked 속성에 직접 바인딩 할 수 있습니다.

그 외에도 IsCheckedAreControlsVisible과 같이보기 모델의 속성에 양방향 바인딩으로 설정하면 작업을 크게 정리할 수 있습니다. 다른 모든 컨트롤은 간단히 가질 수 있습니다. Visibility="{Binding AreControlsVisible…

또 다른 옵션은 해당 스타일을 리소스로 만들고 모든 해당 요소에 적용하는 것입니다.

+0

작은 방법을 제공 할 수 있습니까? 고마워! – Nayan

+0

또 다른 옵션은 가시성 바인딩을 모든 컨트롤에 개별적으로 적용하는 대신 모든 컨트롤의 부모에게 한 번 적용하는 것입니다. –

+0

고마워, 정말 멋지다! 다음은 그 예입니다 : http://www.rhyous.com/2011/02/22/binding-visibility-to-a-bool-value-in-wpf/ – SpeedBirdNine

관련 문제