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); }