コード例 #1
0
        /// <summary>
        /// Convert back an enum value description into its enum value.
        /// </summary>
        public object ConvertBack(object enumValueDescription, Type enumType, object parameter, CultureInfo culture)
        {
            if (enumValueDescription == null)
                return null;

            var stringType = enumValueDescription.GetType();
            if (stringType != typeof(string))
                return null;

            object enumValue;

            var enumValueDescriptionString = (string)enumValueDescription;

            if (_enumValueDescriptionsCache.ContainsKey(enumValueDescriptionString))
            {
                enumValue = _enumValueDescriptionsCache[enumValueDescriptionString];
            }
            else
            {
                enumValue = EnumAttributeHelpers.GetEnumValueFromDescription(enumValueDescriptionString, enumType);

                if (enumValue != null)
                {
                    _enumValueDescriptionsCache.Add(enumValueDescriptionString, enumValue);
                }
            }

            return enumValue;
        }
コード例 #2
0
        /// <summary>
        /// Convert an enum value into its enum value description.
        /// </summary>
        public object Convert(object enumValue, Type stringType, object parameter, CultureInfo culture)
        {
            var enumValueDescription = string.Empty;

            if (enumValue == null)
                return enumValueDescription;

            var enumType = enumValue.GetType();
            if (!enumType.IsEnum)
                return enumValueDescription;

            enumValueDescription = EnumAttributeHelpers.GetEnumValueDescription(enumValue, enumType);

            if (!_enumValueDescriptionsCache.ContainsKey(enumValueDescription))
                _enumValueDescriptionsCache.Add(enumValueDescription, enumValue);

            return enumValueDescription;
        }