示例#1
0
        protected override bool ParseValue(object value)
        {
            if (TryCastBool(value, out var asBool))
            {
                if (IsValueAllowed(asBool))
                {
                    return(asBool);
                }
            }

            // given value is not allowed, return the current set value instead
            if (Value is bool currentValue && IsValueAllowed(currentValue))
            {
                return(currentValue);
            }

            var predefinedValues = PredefinedValues.ToList();

            if (predefinedValues.Count == 0)
            {
                return(!IsValueAllowed(false));
            }

            return(PredefinedValues.OfType <bool>().FirstOrDefault());
        }
示例#2
0
        protected override KeyValuePair <TKey, TValue> ParseValue(object value)
        {
            if (value is KeyValuePair <TKey, TValue> asKeyValuePair && IsValueAllowed(asKeyValuePair))
            {
                return(asKeyValuePair);
            }

            // given value is not allowed, return the current set value instead
            if (Value is KeyValuePair <TKey, TValue> currentValue && IsValueAllowed(currentValue))
            {
                return(currentValue);
            }

            var predefinedValues = PredefinedValues.ToList();

            if (predefinedValues.Count == 0)
            {
                return(new KeyValuePair <TKey, TValue>());
            }

            return(PredefinedValues.OfType <KeyValuePair <TKey, TValue> >().FirstOrDefault());
        }