WPF:绑定到选择的comoboboxItem

时间:2016-08-18 02:14:24

标签: c# wpf xaml binding

我想启用/禁用' 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绑定来实现它。

2 个答案:

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