WPF:绑定选择的comoboboxItem

本文关键字:comoboboxItem 选择 绑定 WPF | 更新日期: 2023-09-27 18:02:47

我想启用/禁用'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??}"/>

我希望只有当'type2'被选中时,'mode'才启用。如果选择了'type1', 'mode'应该被禁用。我可以绑定'CheckBox'的'IsEnabled'属性到'ComboBox'的'selectedValue'属性吗?

我曾尝试将此函数实现为'SelectionChanged'事件,但'NullReferenceException'发生。所以我尝试使用WPF绑定

WPF:绑定选择的comoboboxItem

应该可以:

<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}"/>

试试这个:

<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>