using System; using System.Globalization; using System.Windows.Data; namespace Artemis.UI.Converters { [ValueConversion(typeof(bool), typeof(bool))] public class InverseBooleanConverter : IValueConverter { #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (targetType == typeof(bool)) return !(bool) value; if (targetType == typeof(bool?)) return !(bool?) value; throw new InvalidOperationException("The target must be a boolean"); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (targetType == typeof(bool)) return !(bool) value; if (targetType == typeof(bool?)) return !(bool?) value; throw new InvalidOperationException("The target must be a boolean"); } #endregion } }