using System.Globalization; using System.Windows.Data; using System.Windows.Media; namespace WebhookServer.Gui.Converters; public sealed class NullToBoolConverter : IValueConverter { public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => value is not null; public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotSupportedException(); } public sealed class StringEqualsConverter : IValueConverter { public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => string.Equals(value as string, parameter as string, StringComparison.OrdinalIgnoreCase); public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => (value is bool b && b) ? parameter : Binding.DoNothing; } public sealed class BoolToBrushConverter : IValueConverter { public Brush TrueBrush { get; set; } = Brushes.SeaGreen; public Brush FalseBrush { get; set; } = Brushes.IndianRed; public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => (value is bool b && b) ? TrueBrush : FalseBrush; public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotSupportedException(); }