我想启用/禁用' CheckBox'元素根据哪个' ComboBoxItem'被选中。我不知道如何通过使用WPF绑定来实现此功能。
更具体地说,这是我的xaml代码。
<ComboBox x:Name="typeComboBox" SelectedValuePath="Tag">
<ComboBoxItem Content="type1" Tag="1"></ComboBoxItem>
<ComboBoxItem Content="type2" Tag="2" IsSelected="True"></ComboBoxItem>
</ComboBox>
<CheckBox x:Name="mode" Content="Mode"
IsEnabled="{Binding ElementName=typeComboBox, Path=SelectedValue??}"/>
我只想在&#39; type2&#39;被选中,&#39;模式&#39;已启用。如果&#39; type1&#39;被选中,&#39;模式&#39;应该被禁用。我可以绑定&#39; IsEnabled&#39; CheckBox&#39;的财产选择价值&#39; &#39; ComboBox&#39;?
的财产我试图将这个功能实现为&#39; SelectionChanged&#39;事件,但是&#39; NullReferenceException&#39;发生。所以我试图通过使用WPF绑定来实现它。
答案 0 :(得分:2)
这应该有效:
<ComboBox x:Name="typeComboBox" SelectedValuePath="Tag">
<ComboBoxItem x:Name="box1" Content="type1" Tag="1"/>
<ComboBoxItem x:Name="box2" Content="type2" Tag="2" IsSelected="True"/>
</ComboBox>
<CheckBox x:Name="mode" Content="Mode" IsEnabled="{Binding ElementName=box2, Path=IsSelected}"/>
答案 1 :(得分:0)
试试这个:
<ComboBox x:Name="combo">
<ComboBoxItem x:Name="type1" Content="type1" IsSelected="True"></ComboBoxItem>
<ComboBoxItem x:Name="type2" Content="type2"></ComboBoxItem>
</ComboBox>
<CheckBox>
<CheckBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, ElementName=type2}" Value="True">
<Setter Property="CheckBox.IsEnabled" Value="True"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsSelected, ElementName=type1}" Value="True">
<Setter Property="CheckBox.IsEnabled" Value="False"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>