在我的下面代码中,我有2个复选框chkQAReviewMandatory和chkIsAnsMandatory。我的要求是当我检查chkQAReviewMandatory复选框然后自动我需要复选框chkIsAnsMandatory被选中和禁用,如果未选中chkQAReviewMandatory则取消选中chkIsAnsMandatory并启用它。
<StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal" Margin="5,15,5,0">
<CheckBox x:Name="chkQAReviewMandatory" Content="QA Review Mandatory" Grid.Row="1" Grid.Column="0" Margin="0,5,0,0"
IsChecked="{Binding IsQAReviewMandatory}"/>
<StackPanel Orientation="Horizontal" Margin="20,0,0,0">
<StackPanel.Style>
<Style TargetType="StackPanel">
<Setter Property="Visibility" Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=chkQAReviewMandatory, Path=IsChecked}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<Label x:Name="lblMax" Content="QA Max Point" Height="20" VerticalAlignment="Center" Margin="0,5,5,0"></Label>
<local:NumericTextBox Width="50"
MaxLength="1"
Height="25"
VerticalAlignment="Top"
Text="{Binding MaximumQAPoints}" />
</StackPanel>
</StackPanel>
<CheckBox Content="Is Answer Mandatory"
Grid.Row="2"
HorizontalAlignment="Left"
Margin="5,12,0,0"
IsChecked="{Binding IsAnswerMandatory}" >
<CheckBox.Style>
<Style TargetType="CheckBox">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=chkQAReviewMandatory,Path=IsChecked}" Value="True">
<Setter Property="IsChecked" Value="True"/>
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="Foreground" Value="White"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=chkQAReviewMandatory,Path=IsChecked}" Value="False">
<Setter Property="IsChecked" Value="False"/>
<Setter Property="IsEnabled" Value="True"/>
<Setter Property="Foreground" Value="White"/>
</DataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
答案 0 :(得分:2)
有两种方法:
IsEnabled
和IsChecked
属性绑定到ViewModel中的属性。在另一个控件上,将IsEnabled
绑定到IsChecked
。这意味着如果勾选了一个复选框,则另一个复选框变为启用状态。x:Name
设置控件的名称,然后您可以绑定到该控件上的任何属性。 至于如何执行此操作的详细信息,请使用我的答案向Google查找关键字。祝好运!