using System; using System.ComponentModel; using System.Globalization; using System.Reflection; using System.Windows.Data; namespace TodoList.Converters { public class EnumDescriptionConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) return string.Empty; var type = value.GetType(); var name = Enum.GetName(type, value); if (name == null) return value.ToString(); var field = type.GetField(name); if (field == null) return value.ToString(); var attr = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute; return attr?.Description ?? value.ToString(); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return value; } } }