using System; using System.Globalization; using System.Windows.Data; namespace NetDocsForLLM.Converters { /// /// Converts between an enum value and a boolean value for binding to radio buttons or checkboxes /// public class EnumBooleanConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null || parameter == null) return false; string checkValue = parameter.ToString(); string currentValue = value.ToString(); return checkValue.Equals(currentValue, StringComparison.InvariantCultureIgnoreCase); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null || parameter == null) return null; bool isChecked = (bool)value; if (isChecked) { if (parameter is string parameterString) { return Enum.Parse(targetType, parameterString); } return parameter; } return Binding.DoNothing; } } }