2016-08-18 21 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」が選択されている場合にのみ、「モード」が有効になります。 '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

それは動作しますが、チェックボックスのスタイルも変更されます。 あなたの答えをありがとう! – dolgom

関連する問題