45 lines
1.2 KiB
C#
45 lines
1.2 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.Globalization;
|
|
using System.Windows.Data;
|
|
|
|
namespace MECF.Framework.UI.Core.Converters;
|
|
|
|
public class EnumDescriptionConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
var myEnum = (Enum)value;
|
|
if (myEnum == null)
|
|
{
|
|
return null;
|
|
}
|
|
var description = GetEnumDescription(myEnum);
|
|
return !string.IsNullOrEmpty(description) ? description : myEnum.ToString();
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
return string.Empty;
|
|
}
|
|
|
|
private string GetEnumDescription(Enum enumObj)
|
|
{
|
|
if (enumObj == null)
|
|
{
|
|
return string.Empty;
|
|
}
|
|
|
|
var fieldInfo = enumObj.GetType().GetField(enumObj.ToString());
|
|
|
|
var attribArray = fieldInfo.GetCustomAttributes(false);
|
|
|
|
if (attribArray.Length == 0)
|
|
{
|
|
return enumObj.ToString();
|
|
}
|
|
|
|
var attrib = attribArray[0] as DescriptionAttribute;
|
|
return attrib.Description;
|
|
}
|
|
} |