2010-04-05 4 views
1

두 개의 CheckBox와 TextBox가 있습니다. 두 확인란 모두 IsChecked = False 인 경우 TextBox에 IsEnabled = False를 지정합니다. MultiTrigger로이 작업을 수행 할 수 있습니까? 원본 속성을 사용하려고하면 오류가 계속 발생합니다.다른 두 개의 컨트롤을 참조하는 WPF multitrigger

아래에서 볼 수있는 것처럼 MultiDataTriggers와 함께 작업했습니다. 그러나 두 가지 질문이 있습니다.

1) 내 유일한 선택입니까? MultiTrigger로 할 수 있습니까?

<TextBox.Style> 
    <Style TargetType="TextBox"> 
     <Style.Triggers> 
      <MultiDataTrigger> 
       <MultiDataTrigger.Conditions> 
        <Condition Binding="{Binding ElementName=uxDmm , Path=IsChecked}" 
            Value="False" /> 
        <Condition Binding="{Binding ElementName=uxGpm , Path=IsChecked}" 
            Value="False" /> 
       </MultiDataTrigger.Conditions> 
       <Setter Property="IsEnabled" 
          Value="False" /> 
      </MultiDataTrigger> 
     </Style.Triggers> 
    </Style> 
</TextBox.Style> 

2) 태그의 외부를 할 수 있습니까? Triggers를 적용 할 수있는 곳이 어디인지 모르겠지만 대부분의 샘플은 Style 또는 DataTemplates에서 처리하지만 스타일 내에서 정의하면 TextBox의 기본 모양과 느낌이 엉망입니다.

답변

2
  1. 올바른 방법입니다. 나는 MultiTrigger에 대해 확신하지 못하지만, 어쨌든이 접근법은 좋아 보인다.
  2. 당신이 Style 기본 텍스트 상자 스타일을 기반으로하는 다음과 같은 시도하여 원하는 경우 :

<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">

+0

감사 찰리. 나는 이미 가지고 계단식 기본 스타일에서 스타일을 파생시키는 방법을 알아 내지 못했습니다. 귀하의 구문에 의해 수정되었습니다. 나는 스타일을 벗어난 트리거를 정의하는 더 좋은 방법이 있었으면 좋겠다. 감사! – BrettRobi

관련 문제