2016-08-18 52 views
0

我想根據選擇的「ComboBoxItem」啓用/禁用'CheckBox'元素。我不知道如何通過使用WPF綁定來實現此功能。WPF:選擇哪個comoboboxItem的綁定

更具體地說,這裏是我的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綁定。

回答

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

它的工作原理!非常感謝! – dolgom

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

它的工作原理,但CheckBox的風格也發生了變化。 感謝您的回答! – dolgom