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; using TeamAAS_VP.Attributes; namespace TeamAAS_VP.ValueConverter { public class EnumLocalizationConverter : EnumConverter { public EnumLocalizationConverter(Type type) : base(type) { } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { return GetEnumResourceValue(value); } private string GetEnumResourceValue(object obj) { var fi = obj.GetType().GetField(obj.ToString()); var attr = fi.GetCustomAttribute(typeof(LocalizationAttribute), false) as LocalizationAttribute; if (attr !=null) { try { return attr.ResourceType.GetProperty(attr.ResourceName, BindingFlags.Static | BindingFlags.Public).GetValue(null) as string; } catch (Exception) { return null; } } return null; } } }