using MwFramework.Device; using System; using System.Collections.Generic; using System.ComponentModel; using System.Globalization; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows.Data; namespace MainShell.Converter { /// /// 获取枚举类型的Description描述信息 /// public class EnumDescriptionConverter : IValueConverter { object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value.ToString() != "") { Enum myEnum = (Enum)value; string description = EnumHelper.GetEnumDescription(myEnum); return description; } else { return ""; } } object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return string.Empty; } } public class EnumToBool : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return (int)value == (int)parameter; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if ((bool)value) { return parameter; } else { return Binding.DoNothing; } } } public static class EnumHelper { public static string GetEnumDescription(Enum enumObj) { FieldInfo fieldInfo = enumObj.GetType().GetField(enumObj.ToString()); var descriptionAttr = fieldInfo .GetCustomAttributes(false) .OfType() .Cast() .SingleOrDefault(); if (descriptionAttr == null) { return enumObj.ToString(); } else { return descriptionAttr.Description; } } } }