Browse Source

NumericUpDown: constrained the Value between the Min and Max values.

pull/1645/head
brianlagunas_cp 15 years ago
parent
commit
403c43dc31
  1. 16
      ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Core/Primitives/InputBase.cs
  2. 20
      ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/NumericUpDown.cs

16
ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Core/Primitives/InputBase.cs

@ -57,7 +57,7 @@ namespace Microsoft.Windows.Controls.Primitives
#region Value #region Value
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(object), typeof(InputBase), new FrameworkPropertyMetadata(default(object), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnValuePropertyChanged)); public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(object), typeof(InputBase), new FrameworkPropertyMetadata(default(object), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnValuePropertyChanged, OnCoerceValuePropertyCallback));
public virtual object Value public virtual object Value
{ {
get { return (object)GetValue(ValueProperty); } get { return (object)GetValue(ValueProperty); }
@ -83,6 +83,20 @@ namespace Microsoft.Windows.Controls.Primitives
} }
private static object OnCoerceValuePropertyCallback(DependencyObject d, object baseValue)
{
InputBase inputBase = d as InputBase;
if (inputBase != null)
return inputBase.OnCoerceValue(baseValue);
else
return baseValue;
}
protected virtual object OnCoerceValue(object value)
{
return value;
}
#endregion //Value #endregion //Value
#region ValueType #region ValueType

20
ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/NumericUpDown.cs

@ -101,6 +101,26 @@ namespace Microsoft.Windows.Controls
SetValidSpinDirection(); SetValidSpinDirection();
} }
protected override object OnCoerceValue(object value)
{
if (value == null) return value;
double val = Convert.ToDouble(value);
if (val < Minimum)
{
return Minimum;
}
else if (val > Maximum)
{
return Maximum;
}
else
{
return value;
}
}
protected override object ConvertTextToValue(string text) protected override object ConvertTextToValue(string text)
{ {
object result = null; object result = null;

Loading…
Cancel
Save