EnumDescriptionConverter localized description fix

This commit is contained in:
Jaex 2015-08-10 01:56:29 +03:00
parent 3e0fbf5975
commit ef6e784edc

View file

@ -26,6 +26,7 @@
using System;
using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Reflection;
namespace ShareX.HelpersLib
@ -47,7 +48,7 @@ public override bool CanConvertTo(ITypeDescriptorContext context, Type destType)
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destType)
{
return ((Enum)value).GetDescription();
return ((Enum)value).GetLocalizedDescription();
}
public override bool CanConvertFrom(ITypeDescriptorContext context, Type srcType)
@ -57,13 +58,11 @@ public override bool CanConvertFrom(ITypeDescriptorContext context, Type srcType
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
foreach (FieldInfo fi in enumType.GetFields())
foreach (Enum e in Enum.GetValues(enumType).OfType<Enum>())
{
DescriptionAttribute da = (DescriptionAttribute)Attribute.GetCustomAttribute(fi, typeof(DescriptionAttribute));
if (da != null && da.Description == (string)value)
if (e.GetLocalizedDescription() == (string)value)
{
return Enum.Parse(enumType, fi.Name);
return e;
}
}