2011-12-20 61 views
0

MultiBinding而MultiTrigger

...所以我有兩個要素,我想的是,checbox的財產器isChecked將綁定到我的 「IsAlwaysOn」屬性這是我的我的Class對象(雙向),並給一個元素combox選擇值屬性,如果值爲'enter',那麼IsChecked爲false, 有什麼想法?

+0

發佈您當前的XAML – Paparazzi 2011-12-20 14:40:13

回答

0

您可以使用DataTrigger做到這一點,但我不會推薦它,因爲CheckBox的價值將無法一直保存到MyClass.IsAlwaysOn

<Style x:Key="MyCheckBoxStyle" TargetType="{x:Type CheckBox}"> 
    <Setter Property="IsChecked" Value="{Binding IsAlwaysOn}" /> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding ElementName=MyComboBox, Path=SelectedValue}" Value="Enter"> 
      <Setter Property="IsChecked" Value="False" /> 
      <Setter Property="IsEnabled" Value="False" /> 
     </DataTrigger> 
</Style> 

相反,我會建議在PropertyChange通知處理此在MyClass。爲了防止更改,我要麼在MyClass中包含一個屬性來確定CheckBox是否可以更改,或者在上述觸發器中禁用CheckBox。

void MyClass_PropertyChanged(object sender, PropertyChangedEventArgs e) 
{ 
    if (e.PropertyName == "SelectedComboBoxItem") 
    { 
     if (SelectedComboBoxItem == "Enter") 
     { 
      IsAlwaysOn = false; 
      CanChangeCheckBox = false; 
     } 
     else 
     { 
      CanChangeCheckBox = true; 
     } 
    } 
}