2014-10-22 2 views
0

일부 코드를 사용하여 비활성화 된 체크 박스 Checkbox의 선택을 취소합니다.WPF에서 체크되지 않은 체크 박스를 활성화하는 방법

이 체크 박스가 선택되어 있지 않은 경우 이것을 Checkbox으로 설정하고 XAML을 사용하여 설정해야합니다.

나는이

<CheckBox Margin="10,320,427,0" Name="chkIsDefault" 
IsEnabled="{Binding IsChecked, ElementName=Self, Mode=OneWay}" 
IsChecked="{Binding IsDefault, Mode=TwoWay}"  /> 

할 그러나 그것은 작동하지 않습니다. 어떤 단서? 직접 RelativeSource=Self

<CheckBox ... IsEnabled="{Binding IsChecked, RelativeSource={RelativeSource Self}, Mode=OneWay}"/> 

를 사용하지만 반전 행동을 원하기 때문에 (체크하면 비활성화) 사용자 정의 IValueConverter를 사용하는 바인딩을 수정할 수 있습니다하지만 난에 건의 할 것 같은 객체의 다른 속성에 바인딩하려면

답변

1

사용 나는 그가`의 IsEnabled =의 IsChecked = FALSE '를 얻을 것이다으로이 코드를 사용하기 때문에 그는 또한 컨버터가 필요합니다 이해하는 것과 간단한 Trigger 대신

<CheckBox IsChecked="{Binding IsDefault, Mode=TwoWay}"> 
    <CheckBox.Style> 
     <Style TargetType="{x:Type CheckBox}"> 
      <Setter Property="IsEnabled" Value="True"/> 
      <Style.Triggers> 
       <Trigger Property="IsChecked" Value="True"> 
        <Setter Property="IsEnabled" Value="False"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </CheckBox.Style> 
</CheckBox> 
+0

. IsChecked == false이면 IsEnabled가 true 여야하므로 컨버터가 필요하다는 것을 이해합니다. (질문이 정확하다고 가정 할 때) – Aymeric

+1

내 대답이 업데이트되었습니다. – dkozl

관련 문제