Как изменить значение перечисления на более читаемую строку, привязанную к UltraGrid?

У меня есть Infragistics UltraGrid со связанным списком различных типов данных. Одно из них - это перечисление со значениями, нечитаемыми человеком. Хотелось бы сменить дисплей на что-нибудь более читабельное.

В базе кода люди скрывали столбец перечисления и добавляли столбец строки с желаемыми значениями. Мне это не кажется правильным. Есть ли способ изменить отображаемые значения перечисления, который был бы более читабельным?

Пример. Не читается:
SomeUnreadableEnumValue
Some_Unreadable_Enum_Value

Читабельный:
Читабельный текст.

Обновление
Мне известно об использовании атрибутов описания

public enum MyEnum
{
    [Description("Description for Foo")]
    Foo,
    [Description("Description for Bar")]
    Bar
}

как упоминалось здесь, См. ответ Томаса Левеска. Я просто не могу понять, как привязать этот атрибут описания к UltraGrid, который уже привязан к перечислению.


person Fuyu Persimmon    schedule 18.11.2014    source источник
comment
stackoverflow.com/questions/11531739 /   -  person Marton    schedule 18.11.2014
comment
@Marton Я уже пробовал подход с использованием атрибута Description. На самом деле это тот подход, которого я хочу придерживаться. Проблема в том, как заставить сетку отображать это значение, когда оно уже привязано к перечислению.   -  person Fuyu Persimmon    schedule 18.11.2014
comment
Не уверен, что вы уже просматривали эту ссылку, stackoverflow.com/questions/773303/splitting-camelcase   -  person Suni    schedule 18.11.2014


Ответы (1)


Я просто создаю свойство, которое возвращает описание, и привязываю к нему

public override string UserTextOp
{
    get
    {
        Type enumType = typeof(enumTextCond);
        string name = Enum.GetName(enumType, cond1SelectedKeyEnum);
        if (name != null)
        {
            FieldInfo field = enumType.GetField(name);
            if (field != null)
            {
                DescriptionAttribute attr =
                        Attribute.GetCustomAttribute(field,
                            typeof(DescriptionAttribute)) as DescriptionAttribute;
                if (attr != null)
                    name = attr.Description;
            }
            return name;
        }
        return string.Empty;

    }
}
person paparazzo    schedule 18.11.2014