Вы можете сделать это с помощью 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;
}
}
}