using System; using System.Globalization; using System.Windows.Data; using System.Windows.Markup; namespace FISSDKDemo.Extensions { [MarkupExtensionReturnType(typeof(IValueConverter))] class RevertBoolConverterExtension : MarkupExtension, IValueConverter { private static RevertBoolConverterExtension _revertBoolConverter; static RevertBoolConverterExtension() { _revertBoolConverter = new RevertBoolConverterExtension(); } public override object ProvideValue(IServiceProvider serviceProvider) { return _revertBoolConverter ?? (_revertBoolConverter = new RevertBoolConverterExtension()); } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is bool boolValue) { return !boolValue; } return false; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (value is bool boolValue) { return !boolValue; } return false; } } }