using System.Globalization; using System.Windows; using System.Windows.Data; namespace GsConfigTool.Helpers; [ValueConversion(typeof(object), typeof(Visibility))] public class NullToVisibilityConverter : IValueConverter { public static readonly NullToVisibilityConverter Instance = new(); public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { bool isNull = value is null; bool inverse = parameter?.ToString()?.ToLower() == "inverse"; return (isNull ^ inverse) ? Visibility.Collapsed : Visibility.Visible; } public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotImplementedException(); }