Bunu yapmanın standart yolu, boole değerlerinizi tersine çevirecek bir IValueConverter
yapmaktır. Bu sınıfı oluştururken yeni bir özellik eklemekten daha zordur, tamamen yeniden kullanılabilir - daha sonra bunu başka bağlamalarda (ViewModel'ınızı çok fazla! Mülk özellikleriyle kirletmeden) yeniden kullanabilirsiniz.
Bu sınıf gibi görünecektir: Sonra
[ValueConversion(typeof(bool), typeof(bool))]
public class InvertBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool booleanValue = (bool)value;
return !booleanValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
bool booleanValue = (bool)value;
return !booleanValue;
}
}
, kendi kaynaklarına eklersiniz:
<Button Content="Stop loading"
IsEnabled="{Binding IsLoaded, Converter={StaticResource invertBoolConverter}}"
/>
: Bu edindikten sonra
<src:InvertBoolConverter x:Key="invertBoolConverter"/>
, hoşuna kullanırsınız
[Bu SO sorusu] konusuna bakın (http://stackoverflow.com/questions/1039636/how-to-bind-inverse-boolean-properties-in-wpf) – Nekresh