32 lines
974 B
C#
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;
|
|
}
|
|
}
|
|
}
|