80 lines
2.2 KiB
C#
80 lines
2.2 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 获取枚举类型的Description描述信息
|
|
/// </summary>
|
|
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<DescriptionAttribute>()
|
|
.Cast<DescriptionAttribute>()
|
|
.SingleOrDefault();
|
|
if (descriptionAttr == null)
|
|
{
|
|
return enumObj.ToString();
|
|
}
|
|
else
|
|
{
|
|
return descriptionAttr.Description;
|
|
}
|
|
}
|
|
}
|
|
}
|