El medio estándar para hacer esto es crear un IValueConverter
que invierta sus valores booleanos. Si bien la creación de esta clase es más difícil que agregar una nueva propiedad, es completamente reutilizable, por lo que luego puede reutilizarla en otras vinculaciones (¡sin contaminar su ViewModel con muchas propiedades!).
Esta clase sería algo como:
[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;
}
}
A continuación, deberá añadir a sus recursos:
<src:InvertBoolConverter x:Key="invertBoolConverter"/>
Una vez que tienes esto, que lo utilizarían como:
<Button Content="Stop loading"
IsEnabled="{Binding IsLoaded, Converter={StaticResource invertBoolConverter}}"
/>
Ver [esta pregunta SO] (http://stackoverflow.com/questions/1039636/how-to-bind-inverse-boolean-properties-in-wpf) – Nekresh