Pour cela, vous devrez utiliser un convertisseur.
public class BooleanNegationConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ConvertValue(value);
}
private bool ConvertValue(object value)
{
bool boolValue;
if(!Boolean.TryParse(value.ToString(), out boolValue))
{
throw new ArgumentException("Value that was being converted was not a Boolean", "value");
}
return !boolValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return ConvertValue(value);
}
}
ensuite l'utiliser comme ceci:
<ComboBox IsEnabled="{Binding Path=CheckBoxIsChecked,
Mode=OneWay,
Converter={StaticResource BooleanNegationConverterKey}}"/>
Rappelez-vous que vous devez déclarer cette ressource statique dans les ressources XAML. Comme ceci:
<UserControl.Resources>
<ResourceDictionary>
<BooleanNegationConverter x:Key="BooleanNegationConverterKey" />
</ResourceDictionary>
</UserControl.Resources>
je crois approche plus générique serait d'introduire InverseBooleanConverter ([voir ici] (http://stackoverflow.com/a/1039681/485076)) et l'utiliser où vous avez besoin au lieu de copier-coller sur plusieurs vues – sll
duplication possible de [Comment lier inverser les propriétés booléennes dans WPF?] (Http://stackoverflow.com/questions/1039636/how -to-bind-inverse-boolean-properties-in-wpf) – sll