Files
Hua.Todo/TodoList/Converters/EnumDescriptionConverter.cs
T
2025-12-30 10:29:28 +08:00

32 lines
974 B
C#

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;
}
}
}