protected virtual bool QueryValueFromTextCore(string text, out object value)
        {
            value = null;

            Type validatingType = this.ValueDataType;

            text = text.Trim();

            if (validatingType == null)
            {
                return(true);
            }

            if (!validatingType.IsValueType && (validatingType != typeof(string)))
            {
                return(false);
            }

            try
            {
                value = ChangeTypeHelper.ChangeType(text, validatingType, this.GetActiveFormatProvider());
            }
            catch
            {
                return(false);
            }

            return(true);
        }
        internal bool IsValueNull(object value)
        {
            if ((value == null) || (value == DBNull.Value))
            {
                return(true);
            }

            Type type = this.ValueDataType;

            if (type.IsGenericType && type.GetGenericTypeDefinition().Equals(typeof(Nullable <>)))
            {
                NullableConverter nullableConverter = new NullableConverter(type);
                type = nullableConverter.UnderlyingType;
            }

            if (value.GetType() != type)
            {
                value = ChangeTypeHelper.ChangeType(value, type, this.GetActiveFormatProvider()); //System.Convert.ChangeType( value, type );
            }
            object nullValue = this.NullValue;

            if (nullValue == null)
            {
                return(false);
            }

            if (nullValue.GetType() != type)
            {
                nullValue = System.Convert.ChangeType(nullValue, type);
            }

            return(nullValue.Equals(value));
        }
        protected virtual bool QueryValueFromTextCore(string text, out object value)
        {
            value = null;
            Type valueDataType = ValueDataType;

            text = text.Trim();
            if (valueDataType == null)
            {
                return(true);
            }
            if (!valueDataType.IsValueType && valueDataType != typeof(string))
            {
                return(false);
            }
            try
            {
                value = ChangeTypeHelper.ChangeType(text, valueDataType, GetActiveFormatProvider());
            }
            catch
            {
                if (BeepOnError)
                {
                    SystemSounds.Beep.Play();
                }
                return(false);
            }
            return(true);
        }
 private static object ConvertValueToDataType(object value, Type type)
 {
     if (type == null)
     {
         return(null);
     }
     if (value != null && value != DBNull.Value && value.GetType() != type)
     {
         return(ChangeTypeHelper.ChangeType(value, type, CultureInfo.InvariantCulture));
     }
     return(value);
 }
        private static object ConvertValueToDataType(object value, Type type)
        {
            // We use InvariantCulture instead of the active format provider since the FormatProvider is only
            // used when the source type is String.  When we are converting from a string, we are
            // actually converting a value from XAML.  Therefore, if the string will have a period as a
            // decimal separator.  If we were using the active format provider, we could end up expecting a coma
            // as the decimal separator and the ChangeType method would throw.
            if (type == null)
            {
                return(null);
            }

            if (((value != null) && (value != DBNull.Value)) &&
                (value.GetType() != type))
            {
                return(ChangeTypeHelper.ChangeType(value, type, CultureInfo.InvariantCulture));
            }

            return(value);
        }