private static object NullValueCoerceValueCallback(DependencyObject sender, object value) { ValueRangeTextBox valueRangeTextBox = sender as ValueRangeTextBox; if (!valueRangeTextBox.IsInitialized) { return(DependencyProperty.UnsetValue); } if (value == null || value == DBNull.Value) { return(value); } Type valueDataType = valueRangeTextBox.ValueDataType; if (valueDataType == null) { throw new InvalidOperationException("An attempt was made to set a null value when the ValueDataType property is null."); } if (valueRangeTextBox.IsFinalizingInitialization) { value = ConvertValueToDataType(value, valueRangeTextBox.ValueDataType); } if (value.GetType() != valueDataType) { throw new ArgumentException("The value is not of type " + valueDataType.Name + ".", "NullValue"); } return(value); }
private static void ValueDataTypePropertyChangedCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ValueRangeTextBox valueRangeTextBox = sender as ValueRangeTextBox; Type type = e.NewValue as Type; valueRangeTextBox.IsNumericValueDataType = IsNumericType(type); valueRangeTextBox.RefreshConversionHelpers(); valueRangeTextBox.ConvertValuesToDataType(type); }
private static void FormatProviderPropertyChangedCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ValueRangeTextBox valueRangeTextBox = (ValueRangeTextBox)sender; if (valueRangeTextBox.IsInitialized) { valueRangeTextBox.OnFormatProviderChanged(); } }
private static object TextCoerceValueCallback(object sender, object value) { ValueRangeTextBox valueRangeTextBox = sender as ValueRangeTextBox; if (!valueRangeTextBox.IsInitialized) { return(DependencyProperty.UnsetValue); } if (value == null) { return(string.Empty); } return(value); }
private static void NullValuePropertyChangedCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ValueRangeTextBox valueRangeTextBox = sender as ValueRangeTextBox; if (e.OldValue == null) { if (valueRangeTextBox.Value == null) { valueRangeTextBox.RefreshValue(); } } else if (e.OldValue.Equals(valueRangeTextBox.Value)) { valueRangeTextBox.RefreshValue(); } }
private static void ValuePropertyChangedCallback(object sender, DependencyPropertyChangedEventArgs e) { ValueRangeTextBox valueRangeTextBox = sender as ValueRangeTextBox; if (!valueRangeTextBox.IsForcingValue && !object.Equals(e.NewValue, e.OldValue)) { valueRangeTextBox.IsInValueChanged = true; try { valueRangeTextBox.Text = valueRangeTextBox.GetTextFromValue(e.NewValue); } finally { valueRangeTextBox.IsInValueChanged = false; } } }
private static object ValueCoerceValueCallback(object sender, object value) { ValueRangeTextBox valueRangeTextBox = sender as ValueRangeTextBox; if (!valueRangeTextBox.IsInitialized) { return(DependencyProperty.UnsetValue); } if (valueRangeTextBox.IsFinalizingInitialization) { value = ConvertValueToDataType(value, valueRangeTextBox.ValueDataType); } if (!valueRangeTextBox.IsForcingValue) { valueRangeTextBox.ValidateValue(value); } return(value); }
private static object ValueDataTypeCoerceValueCallback(DependencyObject sender, object value) { ValueRangeTextBox valueRangeTextBox = sender as ValueRangeTextBox; if (valueRangeTextBox.IsInitialized) { Type type = value as Type; try { valueRangeTextBox.ValidateDataType(type); return(value); } catch (Exception innerException) { throw new ArgumentException("An error occured while trying to change the ValueDataType.", innerException); } } return(DependencyProperty.UnsetValue); }
private static object MaxValueCoerceValueCallback(DependencyObject sender, object value) { ValueRangeTextBox valueRangeTextBox = sender as ValueRangeTextBox; if (!valueRangeTextBox.IsInitialized) { return(DependencyProperty.UnsetValue); } if (value == null) { return(value); } Type valueDataType = valueRangeTextBox.ValueDataType; if (valueDataType == null) { throw new InvalidOperationException("An attempt was made to set a maximum value when the ValueDataType property is null."); } if (valueRangeTextBox.IsFinalizingInitialization) { value = ConvertValueToDataType(value, valueRangeTextBox.ValueDataType); } if (value.GetType() != valueDataType) { throw new ArgumentException("The value is not of type " + valueDataType.Name + ".", "MinValue"); } IComparable comparable = value as IComparable; if (comparable == null) { throw new InvalidOperationException("MaxValue does not implement the IComparable interface."); } object minValue = valueRangeTextBox.MinValue; valueRangeTextBox.ValidateValueInRange(minValue, value, valueRangeTextBox.Value); return(value); }