diff --git a/src/Avalonia.Controls/NumericUpDown/NumericUpDown.cs b/src/Avalonia.Controls/NumericUpDown/NumericUpDown.cs
index 9bc97e3758a..cbb5b667e73 100644
--- a/src/Avalonia.Controls/NumericUpDown/NumericUpDown.cs
+++ b/src/Avalonia.Controls/NumericUpDown/NumericUpDown.cs
@@ -58,7 +58,7 @@ public class NumericUpDown : TemplatedControl
/// Defines the property.
///
public static readonly StyledProperty IncrementProperty =
- AvaloniaProperty.Register(nameof(Increment), 1.0d/*, validate: OnCoerceIncrement*/);
+ AvaloniaProperty.Register(nameof(Increment), 1.0d, coerce: OnCoerceIncrement);
///
/// Defines the property.
@@ -70,13 +70,13 @@ public class NumericUpDown : TemplatedControl
/// Defines the property.
///
public static readonly StyledProperty MaximumProperty =
- AvaloniaProperty.Register(nameof(Maximum), double.MaxValue/*, validate: OnCoerceMaximum*/);
+ AvaloniaProperty.Register(nameof(Maximum), double.MaxValue, coerce: OnCoerceMaximum);
///
/// Defines the property.
///
public static readonly StyledProperty MinimumProperty =
- AvaloniaProperty.Register(nameof(Minimum), double.MinValue/*, validate: OnCoerceMinimum*/);
+ AvaloniaProperty.Register(nameof(Minimum), double.MinValue, coerce: OnCoerceMinimum);
///
/// Defines the property.
@@ -738,19 +738,34 @@ private void SetValueInternal(double value)
}
}
- private static double OnCoerceMaximum(NumericUpDown upDown, double value)
+ private static double OnCoerceMaximum(IAvaloniaObject instance, double value)
{
- return upDown.OnCoerceMaximum(value);
+ if (instance is NumericUpDown upDown)
+ {
+ return upDown.OnCoerceMaximum(value);
+ }
+
+ return value;
}
- private static double OnCoerceMinimum(NumericUpDown upDown, double value)
+ private static double OnCoerceMinimum(IAvaloniaObject instance, double value)
{
- return upDown.OnCoerceMinimum(value);
+ if (instance is NumericUpDown upDown)
+ {
+ return upDown.OnCoerceMinimum(value);
+ }
+
+ return value;
}
- private static double OnCoerceIncrement(NumericUpDown upDown, double value)
+ private static double OnCoerceIncrement(IAvaloniaObject instance, double value)
{
- return upDown.OnCoerceIncrement(value);
+ if (instance is NumericUpDown upDown)
+ {
+ return upDown.OnCoerceIncrement(value);
+ }
+
+ return value;
}
private void TextBoxOnTextChanged()