2016-06-28 7 views
0

я это CheckBox:Изменение состояния флажка с даже вызвать

<CheckBox x:Name="checkNotAppointed" Grid.Column="1" Grid.Row="2" Content="Not Appointed" > 
    <CheckBox.Style> 
     <Style TargetType="{x:Type CheckBox}"> 
      <Setter Property="Margin" Value="2" /> 
      <Setter Property="IsEnabled" Value="True" /> 
      <Setter Property="IsChecked" Value="{Binding FilterForNotAppointed, UpdateSourceTrigger=PropertyChanged}" /> 
      <Style.Triggers> 
       <MultiDataTrigger> 
        <MultiDataTrigger.Conditions> 
         <Condition Binding="{Binding IsChecked, ElementName=checkElder}" Value="True" /> 
         <Condition Binding="{Binding IsChecked, ElementName=checkMinisterialServant}" Value="False" /> 
        </MultiDataTrigger.Conditions> 
        <Setter Property="IsEnabled" Value="True" /> 
       </MultiDataTrigger> 
       <MultiDataTrigger> 
        <MultiDataTrigger.Conditions> 
         <Condition Binding="{Binding IsChecked, ElementName=checkElder}" Value="False" /> 
         <Condition Binding="{Binding IsChecked, ElementName=checkMinisterialServant}" Value="True" /> 
        </MultiDataTrigger.Conditions> 
        <Setter Property="IsEnabled" Value="True" /> 
       </MultiDataTrigger> 
       <MultiDataTrigger> 
        <MultiDataTrigger.Conditions> 
         <Condition Binding="{Binding IsChecked, ElementName=checkElder}" Value="False" /> 
         <Condition Binding="{Binding IsChecked, ElementName=checkMinisterialServant}" Value="False" /> 
        </MultiDataTrigger.Conditions> 
        <Setter Property="IsChecked" Value="True" /> 
        <Setter Property="IsEnabled" Value="False" /> 
       </MultiDataTrigger> 
      </Style.Triggers> 
     </Style> 
    </CheckBox.Style> 
</CheckBox> 

Если я либо убрать галочку checkElder или checkMinisterialServant это не влияет на checkNotAppointed. Верный.

Если я тогда отключаю их оба, он проверяет checkNotAppointed и отключает. Верный.

Если я затем проверю один из двух других, он включает checkNotAppointed, но всегда отменяет его. Зачем?

+0

Возможно, ответ на FilterForNotAppointed. В вашем третьем сценарии, каково значение FilterForNotAppointed's IsChecked? – tgpdyk

+0

@tgpdyk Он был отмечен раньше, так что это должно быть правдой. Но я не знаю, кто отлаживает сторону XAML. Где будет точка останова? –

ответ

0

Существует недостающая часть (IsChecked) на ваш сеттер, обязательными, он должен быть:

<Setter Property="IsChecked" Value="{Binding IsChecked, ElementName=FilterForNotAppointed}"/> 

Основываясь на ваш комментарий, то FilterForNotAppointed является еще одним списком, так что вы можете проверить это, добавив следующие:

<StackPanel Orientation="Horizontal"> 
     <Label Content="FilterForNotAppointed' IsChecked:"/> 
     <TextBlock VerticalAlignment="Center" Text="{Binding IsChecked, ElementName=FilterForNotAppointed}"/> 
</StackPanel> 

<StackPanel Orientation="Horizontal"> 
     <Label Content="checkNotAppointed's IsChecked:"/> 
     <TextBlock VerticalAlignment="Center" Text="{Binding IsChecked, ElementName=checkNotAppointed}"/> 
</StackPanel> 
+0

Спасибо. Но это в моем коде непосредственно перед триггером. –

+0

На моей стороне проблема с вопросом «всегда отменяет» не существует. – tgpdyk