diff --git a/src/Avalonia.Controls/Primitives/RangeBase.cs b/src/Avalonia.Controls/Primitives/RangeBase.cs
index ebf7879412..33ab78b66f 100644
--- a/src/Avalonia.Controls/Primitives/RangeBase.cs
+++ b/src/Avalonia.Controls/Primitives/RangeBase.cs
@@ -45,14 +45,14 @@ namespace Avalonia.Controls.Primitives
///
/// Defines the event.
///
- public static readonly RoutedEvent> ValueChangedEvent =
- RoutedEvent.Register>(
+ public static readonly RoutedEvent ValueChangedEvent =
+ RoutedEvent.Register(
nameof(ValueChanged), RoutingStrategies.Bubble);
///
/// Occurs when the property changes.
///
- public event EventHandler>? ValueChanged
+ public event EventHandler? ValueChanged
{
add => AddHandler(ValueChangedEvent, value);
remove => RemoveHandler(ValueChangedEvent, value);
@@ -163,7 +163,7 @@ namespace Avalonia.Controls.Primitives
}
else if (change.Property == ValueProperty)
{
- var valueChangedEventArgs = new RoutedPropertyChangedEventArgs(
+ var valueChangedEventArgs = new RangeBaseValueChangedEventArgs(
change.GetOldValue(),
change.GetNewValue(),
ValueChangedEvent);
diff --git a/src/Avalonia.Controls/Primitives/RangeBaseValueChangedEventArgs.cs b/src/Avalonia.Controls/Primitives/RangeBaseValueChangedEventArgs.cs
new file mode 100644
index 0000000000..ce1ac90bc6
--- /dev/null
+++ b/src/Avalonia.Controls/Primitives/RangeBaseValueChangedEventArgs.cs
@@ -0,0 +1,47 @@
+using Avalonia.Interactivity;
+
+namespace Avalonia.Controls.Primitives
+{
+ ///
+ /// Provides data specific to a event.
+ ///
+ public class RangeBaseValueChangedEventArgs : RoutedEventArgs
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The old property value.
+ /// The new property value.
+ /// The routed event associated with these event args.
+ public RangeBaseValueChangedEventArgs(double oldValue, double newValue, RoutedEvent? routedEvent)
+ : base(routedEvent)
+ {
+ OldValue = oldValue;
+ NewValue = newValue;
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The old property value.
+ /// The new property value.
+ /// The routed event associated with these event args.
+ /// The source object that raised the routed event.
+ public RangeBaseValueChangedEventArgs(double oldValue, double newValue, RoutedEvent? routedEvent, object? source)
+ : base(routedEvent, source)
+ {
+ OldValue = oldValue;
+ NewValue = newValue;
+ }
+
+ ///
+ /// Gets the old value of the property.
+ ///
+ public double OldValue { get; init; }
+
+ ///
+ /// Gets the new value of the property.
+ ///
+ public double NewValue { get; init; }
+ }
+}