From f8706278a8506cefa0c34fefbb0caa27f9db6318 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 12 Apr 2022 22:43:51 +0200 Subject: [PATCH] Make OnPropertyChanged non-generic. --- .../HamburgerMenu/HamburgerMenu.cs | 5 +-- src/Avalonia.Animation/Animatable.cs | 7 +-- src/Avalonia.Base/AvaloniaObject.cs | 4 +- .../AvaloniaPropertyChangedExtensions.cs | 43 +++++++++++++++++++ .../DataGridCheckBoxColumn.cs | 2 +- .../DataGridColumn.cs | 4 +- src/Avalonia.Controls.DataGrid/DataGridRow.cs | 2 +- .../DataGridTextColumn.cs | 2 +- src/Avalonia.Controls/Button.cs | 14 +++--- src/Avalonia.Controls/ButtonSpinner.cs | 4 +- src/Avalonia.Controls/ContextMenu.cs | 4 +- src/Avalonia.Controls/Control.cs | 2 +- src/Avalonia.Controls/Documents/Inline.cs | 2 +- src/Avalonia.Controls/Documents/Run.cs | 2 +- .../Documents/TextElement.cs | 2 +- src/Avalonia.Controls/Expander.cs | 4 +- src/Avalonia.Controls/ItemsControl.cs | 4 +- src/Avalonia.Controls/MaskedTextBox.cs | 2 +- .../WindowNotificationManager.cs | 4 +- .../Presenters/ContentPresenter.cs | 2 +- .../Presenters/ScrollContentPresenter.cs | 2 +- .../Presenters/TextPresenter.cs | 2 +- src/Avalonia.Controls/Primitives/ScrollBar.cs | 4 +- .../Primitives/SelectingItemsControl.cs | 6 +-- src/Avalonia.Controls/Primitives/Track.cs | 4 +- src/Avalonia.Controls/ProgressBar.cs | 6 +-- src/Avalonia.Controls/RepeatButton.cs | 4 +- .../Repeater/ItemsRepeater.cs | 19 ++++---- src/Avalonia.Controls/Slider.cs | 4 +- .../SplitButton/SplitButton.cs | 11 ++--- .../SplitButton/ToggleSplitButton.cs | 2 +- src/Avalonia.Controls/TextBlock.cs | 2 +- src/Avalonia.Controls/TextBox.cs | 4 +- .../TransitioningContentControl.cs | 2 +- src/Avalonia.Controls/TrayIcon.cs | 8 ++-- src/Avalonia.Controls/Viewbox.cs | 4 +- src/Avalonia.Controls/Window.cs | 6 +-- .../Diagnostics/Controls/ThicknessEditor.cs | 4 +- src/Avalonia.Input/InputElement.cs | 8 ++-- src/Avalonia.Layout/StackLayout.cs | 4 +- src/Avalonia.Layout/UniformGridLayout.cs | 18 ++++---- src/Avalonia.Layout/WrapLayout/WrapLayout.cs | 2 +- src/Avalonia.Themes.Default/SimpleTheme.cs | 2 +- src/Avalonia.Themes.Fluent/FluentTheme.cs | 2 +- src/Avalonia.Visuals/Media/DashStyle.cs | 5 +-- src/Avalonia.Visuals/Media/DrawingImage.cs | 2 +- src/Avalonia.Visuals/Media/GeometryGroup.cs | 2 +- src/Avalonia.Visuals/Media/Pen.cs | 2 +- .../AvaloniaObjectTests_OnPropertyChanged.cs | 15 ++++--- .../Xaml/InitializationOrderTracker.cs | 2 +- 50 files changed, 157 insertions(+), 116 deletions(-) create mode 100644 src/Avalonia.Base/AvaloniaPropertyChangedExtensions.cs diff --git a/samples/SampleControls/HamburgerMenu/HamburgerMenu.cs b/samples/SampleControls/HamburgerMenu/HamburgerMenu.cs index bbfd3d87ca..ab61dcde91 100644 --- a/samples/SampleControls/HamburgerMenu/HamburgerMenu.cs +++ b/samples/SampleControls/HamburgerMenu/HamburgerMenu.cs @@ -43,14 +43,13 @@ namespace ControlSamples _splitView = e.NameScope.Find("PART_NavigationPane"); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == BoundsProperty && _splitView is not null) { - var oldBounds = change.OldValue.GetValueOrDefault(); - var newBounds = change.NewValue.GetValueOrDefault(); + var (oldBounds, newBounds) = change.GetOldAndNewValue(); EnsureSplitViewMode(oldBounds, newBounds); } } diff --git a/src/Avalonia.Animation/Animatable.cs b/src/Avalonia.Animation/Animatable.cs index 50fc5ac73b..b045a32cd1 100644 --- a/src/Avalonia.Animation/Animatable.cs +++ b/src/Avalonia.Animation/Animatable.cs @@ -87,12 +87,13 @@ namespace Avalonia.Animation } } - protected sealed override void OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change) + protected sealed override void OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change) { if (change.Property == TransitionsProperty && change.IsEffectiveValueChange) { - var oldTransitions = change.OldValue.GetValueOrDefault(); - var newTransitions = change.NewValue.GetValueOrDefault(); + var e = (AvaloniaPropertyChangedEventArgs)change; + var oldTransitions = e.OldValue.GetValueOrDefault(); + var newTransitions = e.NewValue.GetValueOrDefault(); // When transitions are replaced, we add the new transitions before removing the old // transitions, so that when the old transition being disposed causes the value to diff --git a/src/Avalonia.Base/AvaloniaObject.cs b/src/Avalonia.Base/AvaloniaObject.cs index e243b0f552..58ccb53744 100644 --- a/src/Avalonia.Base/AvaloniaObject.cs +++ b/src/Avalonia.Base/AvaloniaObject.cs @@ -657,7 +657,7 @@ namespace Avalonia /// Called when a avalonia property changes on the object. /// /// The property change details. - protected virtual void OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change) + protected virtual void OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change) { if (change.IsEffectiveValueChange) { @@ -669,7 +669,7 @@ namespace Avalonia /// Called when a avalonia property changes on the object. /// /// The property change details. - protected virtual void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected virtual void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { } diff --git a/src/Avalonia.Base/AvaloniaPropertyChangedExtensions.cs b/src/Avalonia.Base/AvaloniaPropertyChangedExtensions.cs new file mode 100644 index 0000000000..a52d6d15ab --- /dev/null +++ b/src/Avalonia.Base/AvaloniaPropertyChangedExtensions.cs @@ -0,0 +1,43 @@ +namespace Avalonia +{ + /// + /// Provides extensions for . + /// + public static class AvaloniaPropertyChangedExtensions + { + /// + /// Gets a typed value from . + /// + /// The value type. + /// The event args. + /// The value. + public static T GetOldValue(this AvaloniaPropertyChangedEventArgs e) + { + return ((AvaloniaPropertyChangedEventArgs)e).OldValue.GetValueOrDefault()!; + } + + /// + /// Gets a typed value from . + /// + /// The value type. + /// The event args. + /// The value. + public static T GetNewValue(this AvaloniaPropertyChangedEventArgs e) + { + return ((AvaloniaPropertyChangedEventArgs)e).NewValue.GetValueOrDefault()!; + } + + /// + /// Gets a typed value from and + /// . + /// + /// The value type. + /// The event args. + /// The value. + public static (T oldValue, T newValue) GetOldAndNewValue(this AvaloniaPropertyChangedEventArgs e) + { + var ev = (AvaloniaPropertyChangedEventArgs)e; + return (ev.OldValue.GetValueOrDefault()!, ev.NewValue.GetValueOrDefault()!); + } + } +} diff --git a/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs b/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs index ccf1f3f77a..9826c15598 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs @@ -46,7 +46,7 @@ namespace Avalonia.Controls set => SetValue(IsThreeStateProperty, value); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls.DataGrid/DataGridColumn.cs b/src/Avalonia.Controls.DataGrid/DataGridColumn.cs index a77b482436..f3ea48ff80 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridColumn.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridColumn.cs @@ -192,14 +192,14 @@ namespace Avalonia.Controls set => SetValue(IsVisibleProperty, value); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == IsVisibleProperty) { OwningGrid?.OnColumnVisibleStateChanging(this); - var isVisible = (change as AvaloniaPropertyChangedEventArgs).NewValue.Value; + var isVisible = change.GetNewValue(); if (_headerCell != null) { diff --git a/src/Avalonia.Controls.DataGrid/DataGridRow.cs b/src/Avalonia.Controls.DataGrid/DataGridRow.cs index 1efce7c0b8..0cd5a9c93b 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridRow.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridRow.cs @@ -1092,7 +1092,7 @@ namespace Avalonia.Controls } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { if (change.Property == DataContextProperty) { diff --git a/src/Avalonia.Controls.DataGrid/DataGridTextColumn.cs b/src/Avalonia.Controls.DataGrid/DataGridTextColumn.cs index 863910c226..df3e58c856 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridTextColumn.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridTextColumn.cs @@ -121,7 +121,7 @@ namespace Avalonia.Controls set => SetValue(ForegroundProperty, value); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls/Button.cs b/src/Avalonia.Controls/Button.cs index a4d15bab8d..a4a147e0f3 100644 --- a/src/Avalonia.Controls/Button.cs +++ b/src/Avalonia.Controls/Button.cs @@ -413,7 +413,7 @@ namespace Avalonia.Controls } /// - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); @@ -421,12 +421,13 @@ namespace Avalonia.Controls { if (((ILogical)this).IsAttachedToLogicalTree) { - if (change.OldValue.GetValueOrDefault() is ICommand oldCommand) + var (oldValue, newValue) = change.GetOldAndNewValue(); + if (oldValue is ICommand oldCommand) { oldCommand.CanExecuteChanged -= CanExecuteChanged; } - if (change.NewValue.GetValueOrDefault() is ICommand newCommand) + if (newValue is ICommand newCommand) { newCommand.CanExecuteChanged += CanExecuteChanged; } @@ -440,7 +441,7 @@ namespace Avalonia.Controls } else if (change.Property == IsCancelProperty) { - var isCancel = change.NewValue.GetValueOrDefault(); + var isCancel = change.GetNewValue(); if (VisualRoot is IInputElement inputRoot) { @@ -456,7 +457,7 @@ namespace Avalonia.Controls } else if (change.Property == IsDefaultProperty) { - var isDefault = change.NewValue.GetValueOrDefault(); + var isDefault = change.GetNewValue(); if (VisualRoot is IInputElement inputRoot) { @@ -476,8 +477,7 @@ namespace Avalonia.Controls } else if (change.Property == FlyoutProperty) { - var oldFlyout = change.OldValue.GetValueOrDefault() as FlyoutBase; - var newFlyout = change.NewValue.GetValueOrDefault() as FlyoutBase; + var (oldFlyout, newFlyout) = change.GetOldAndNewValue(); // If flyout is changed while one is already open, make sure we // close the old one first diff --git a/src/Avalonia.Controls/ButtonSpinner.cs b/src/Avalonia.Controls/ButtonSpinner.cs index 29a954098f..e455c6c6f3 100644 --- a/src/Avalonia.Controls/ButtonSpinner.cs +++ b/src/Avalonia.Controls/ButtonSpinner.cs @@ -210,13 +210,13 @@ namespace Avalonia.Controls } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == ButtonSpinnerLocationProperty) { - UpdatePseudoClasses(change.NewValue.GetValueOrDefault()); + UpdatePseudoClasses(change.GetNewValue()); } } diff --git a/src/Avalonia.Controls/ContextMenu.cs b/src/Avalonia.Controls/ContextMenu.cs index bc5195ff6c..ee2378101a 100644 --- a/src/Avalonia.Controls/ContextMenu.cs +++ b/src/Avalonia.Controls/ContextMenu.cs @@ -241,13 +241,13 @@ namespace Avalonia.Controls } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == WindowManagerAddShadowHintProperty && _popup != null) { - _popup.WindowManagerAddShadowHint = change.NewValue.GetValueOrDefault(); + _popup.WindowManagerAddShadowHint = change.GetNewValue(); } } diff --git a/src/Avalonia.Controls/Control.cs b/src/Avalonia.Controls/Control.cs index 2c696c8f74..d6a5fa0727 100644 --- a/src/Avalonia.Controls/Control.cs +++ b/src/Avalonia.Controls/Control.cs @@ -348,7 +348,7 @@ namespace Avalonia.Controls } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls/Documents/Inline.cs b/src/Avalonia.Controls/Documents/Inline.cs index 5b63f95432..fdd78459c8 100644 --- a/src/Avalonia.Controls/Documents/Inline.cs +++ b/src/Avalonia.Controls/Documents/Inline.cs @@ -55,7 +55,7 @@ namespace Avalonia.Controls.Documents TextDecorations, Foreground, Background, BaselineAlignment); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls/Documents/Run.cs b/src/Avalonia.Controls/Documents/Run.cs index a7dd5fd94f..2f9ba013ed 100644 --- a/src/Avalonia.Controls/Documents/Run.cs +++ b/src/Avalonia.Controls/Documents/Run.cs @@ -71,7 +71,7 @@ namespace Avalonia.Controls.Documents return text.Length; } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls/Documents/TextElement.cs b/src/Avalonia.Controls/Documents/TextElement.cs index d8e13554b5..450aafbfaf 100644 --- a/src/Avalonia.Controls/Documents/TextElement.cs +++ b/src/Avalonia.Controls/Documents/TextElement.cs @@ -256,7 +256,7 @@ namespace Avalonia.Controls.Documents /// public event EventHandler? Invalidated; - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls/Expander.cs b/src/Avalonia.Controls/Expander.cs index 020b162864..3ba99d8a67 100644 --- a/src/Avalonia.Controls/Expander.cs +++ b/src/Avalonia.Controls/Expander.cs @@ -106,13 +106,13 @@ namespace Avalonia.Controls } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == ExpandDirectionProperty) { - UpdatePseudoClasses(change.NewValue.GetValueOrDefault()); + UpdatePseudoClasses(change.GetNewValue()); } } diff --git a/src/Avalonia.Controls/ItemsControl.cs b/src/Avalonia.Controls/ItemsControl.cs index 0cd72dc91c..8474c286a5 100644 --- a/src/Avalonia.Controls/ItemsControl.cs +++ b/src/Avalonia.Controls/ItemsControl.cs @@ -341,13 +341,13 @@ namespace Avalonia.Controls return new ItemsControlAutomationPeer(this); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == ItemCountProperty) { - UpdatePseudoClasses(change.NewValue.GetValueOrDefault()); + UpdatePseudoClasses(change.GetNewValue()); } } diff --git a/src/Avalonia.Controls/MaskedTextBox.cs b/src/Avalonia.Controls/MaskedTextBox.cs index ad64c61ebe..933788f9ea 100644 --- a/src/Avalonia.Controls/MaskedTextBox.cs +++ b/src/Avalonia.Controls/MaskedTextBox.cs @@ -280,7 +280,7 @@ namespace Avalonia.Controls base.OnLostFocus(e); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { void UpdateMaskProvider() { diff --git a/src/Avalonia.Controls/Notifications/WindowNotificationManager.cs b/src/Avalonia.Controls/Notifications/WindowNotificationManager.cs index d6b82a8f8a..2449f4c15c 100644 --- a/src/Avalonia.Controls/Notifications/WindowNotificationManager.cs +++ b/src/Avalonia.Controls/Notifications/WindowNotificationManager.cs @@ -139,13 +139,13 @@ namespace Avalonia.Controls.Notifications notificationControl.Close(); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == PositionProperty) { - UpdatePseudoClasses(change.NewValue.GetValueOrDefault()); + UpdatePseudoClasses(change.GetNewValue()); } } diff --git a/src/Avalonia.Controls/Presenters/ContentPresenter.cs b/src/Avalonia.Controls/Presenters/ContentPresenter.cs index 8229f25a07..03159c7a8e 100644 --- a/src/Avalonia.Controls/Presenters/ContentPresenter.cs +++ b/src/Avalonia.Controls/Presenters/ContentPresenter.cs @@ -403,7 +403,7 @@ namespace Avalonia.Controls.Presenters } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); switch (change.Property.Name) diff --git a/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs b/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs index a8bffcc842..c526b7ac49 100644 --- a/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs +++ b/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs @@ -469,7 +469,7 @@ namespace Avalonia.Controls.Presenters } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { if (change.Property == OffsetProperty && !_arranging) { diff --git a/src/Avalonia.Controls/Presenters/TextPresenter.cs b/src/Avalonia.Controls/Presenters/TextPresenter.cs index 7f2dde7c1e..d127866640 100644 --- a/src/Avalonia.Controls/Presenters/TextPresenter.cs +++ b/src/Avalonia.Controls/Presenters/TextPresenter.cs @@ -776,7 +776,7 @@ namespace Avalonia.Controls.Presenters _caretTimer.Tick -= CaretTimerTick; } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls/Primitives/ScrollBar.cs b/src/Avalonia.Controls/Primitives/ScrollBar.cs index 6a30097fbb..e5c3392faf 100644 --- a/src/Avalonia.Controls/Primitives/ScrollBar.cs +++ b/src/Avalonia.Controls/Primitives/ScrollBar.cs @@ -194,13 +194,13 @@ namespace Avalonia.Controls.Primitives } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == OrientationProperty) { - UpdatePseudoClasses(change.NewValue.GetValueOrDefault()); + UpdatePseudoClasses(change.GetNewValue()); } else if (change.Property == AllowAutoHideProperty) { diff --git a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs index 8714fff71b..6f2554bef3 100644 --- a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs +++ b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs @@ -585,7 +585,7 @@ namespace Avalonia.Controls.Primitives } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); @@ -595,7 +595,7 @@ namespace Avalonia.Controls.Primitives } if (change.Property == ItemsProperty && _updateState is null && _selection is object) { - var newValue = change.NewValue.GetValueOrDefault(); + var newValue = change.GetNewValue(); _selection.Source = newValue; if (newValue is null) @@ -605,7 +605,7 @@ namespace Avalonia.Controls.Primitives } else if (change.Property == SelectionModeProperty && _selection is object) { - var newValue = change.NewValue.GetValueOrDefault(); + var newValue = change.GetNewValue(); _selection.SingleSelect = !newValue.HasAllFlags(SelectionMode.Multiple); } else if (change.Property == WrapSelectionProperty) diff --git a/src/Avalonia.Controls/Primitives/Track.cs b/src/Avalonia.Controls/Primitives/Track.cs index f8d6046101..49f0cda982 100644 --- a/src/Avalonia.Controls/Primitives/Track.cs +++ b/src/Avalonia.Controls/Primitives/Track.cs @@ -291,13 +291,13 @@ namespace Avalonia.Controls.Primitives return arrangeSize; } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == OrientationProperty) { - UpdatePseudoClasses(change.NewValue.GetValueOrDefault()); + UpdatePseudoClasses(change.GetNewValue()); } } diff --git a/src/Avalonia.Controls/ProgressBar.cs b/src/Avalonia.Controls/ProgressBar.cs index a4f2cc799a..1075328c67 100644 --- a/src/Avalonia.Controls/ProgressBar.cs +++ b/src/Avalonia.Controls/ProgressBar.cs @@ -178,17 +178,17 @@ namespace Avalonia.Controls return base.ArrangeOverride(finalSize); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == IsIndeterminateProperty) { - UpdatePseudoClasses(change.NewValue.GetValueOrDefault(), null); + UpdatePseudoClasses(change.GetNewValue(), null); } else if (change.Property == OrientationProperty) { - UpdatePseudoClasses(null, change.NewValue.GetValueOrDefault()); + UpdatePseudoClasses(null, change.GetNewValue()); } } diff --git a/src/Avalonia.Controls/RepeatButton.cs b/src/Avalonia.Controls/RepeatButton.cs index 0415a78721..80f841fa18 100644 --- a/src/Avalonia.Controls/RepeatButton.cs +++ b/src/Avalonia.Controls/RepeatButton.cs @@ -70,11 +70,11 @@ namespace Avalonia.Controls _repeatTimer?.Stop(); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); - if (change.Property == IsPressedProperty && change.NewValue.GetValueOrDefault() == false) + if (change.Property == IsPressedProperty && change.GetNewValue() == false) { StopTimer(); } diff --git a/src/Avalonia.Controls/Repeater/ItemsRepeater.cs b/src/Avalonia.Controls/Repeater/ItemsRepeater.cs index 0260e1999c..d5135af624 100644 --- a/src/Avalonia.Controls/Repeater/ItemsRepeater.cs +++ b/src/Avalonia.Controls/Repeater/ItemsRepeater.cs @@ -424,12 +424,11 @@ namespace Avalonia.Controls _viewportManager.ResetScrollers(); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { if (change.Property == ItemsProperty) { - var oldEnumerable = change.OldValue.GetValueOrDefault(); - var newEnumerable = change.NewValue.GetValueOrDefault(); + var (oldEnumerable, newEnumerable) = change.GetOldAndNewValue(); if (oldEnumerable != newEnumerable) { @@ -444,23 +443,21 @@ namespace Avalonia.Controls } else if (change.Property == ItemTemplateProperty) { - OnItemTemplateChanged( - change.OldValue.GetValueOrDefault(), - change.NewValue.GetValueOrDefault()); + var (oldvalue, newValue) = change.GetOldAndNewValue(); + OnItemTemplateChanged(oldvalue, newValue); } else if (change.Property == LayoutProperty) { - OnLayoutChanged( - change.OldValue.GetValueOrDefault(), - change.NewValue.GetValueOrDefault()); + var (oldvalue, newValue) = change.GetOldAndNewValue(); + OnLayoutChanged(oldvalue, newValue); } else if (change.Property == HorizontalCacheLengthProperty) { - _viewportManager.HorizontalCacheLength = change.NewValue.GetValueOrDefault(); + _viewportManager.HorizontalCacheLength = change.GetNewValue(); } else if (change.Property == VerticalCacheLengthProperty) { - _viewportManager.VerticalCacheLength = change.NewValue.GetValueOrDefault(); + _viewportManager.VerticalCacheLength = change.GetNewValue(); } base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls/Slider.cs b/src/Avalonia.Controls/Slider.cs index f2bd1947d6..f0a0fba1af 100644 --- a/src/Avalonia.Controls/Slider.cs +++ b/src/Avalonia.Controls/Slider.cs @@ -369,13 +369,13 @@ namespace Avalonia.Controls } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == OrientationProperty) { - UpdatePseudoClasses(change.NewValue.GetValueOrDefault()); + UpdatePseudoClasses(change.GetNewValue()); } } diff --git a/src/Avalonia.Controls/SplitButton/SplitButton.cs b/src/Avalonia.Controls/SplitButton/SplitButton.cs index f2f4e951ae..37cdefd4e5 100644 --- a/src/Avalonia.Controls/SplitButton/SplitButton.cs +++ b/src/Avalonia.Controls/SplitButton/SplitButton.cs @@ -276,19 +276,21 @@ namespace Avalonia.Controls } /// - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs e) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs e) { if (e.Property == CommandProperty) { if (_isAttachedToLogicalTree) { // Must unregister events here while a reference to the old command still exists - if (e.OldValue.GetValueOrDefault() is ICommand oldCommand) + var (oldValue, newValue) = e.GetOldAndNewValue(); + + if (oldValue is ICommand oldCommand) { oldCommand.CanExecuteChanged -= CanExecuteChanged; } - if (e.NewValue.GetValueOrDefault() is ICommand newCommand) + if (newValue is ICommand newCommand) { newCommand.CanExecuteChanged += CanExecuteChanged; } @@ -302,8 +304,7 @@ namespace Avalonia.Controls } else if (e.Property == FlyoutProperty) { - var oldFlyout = e.OldValue.GetValueOrDefault() as FlyoutBase; - var newFlyout = e.NewValue.GetValueOrDefault() as FlyoutBase; + var (oldFlyout, newFlyout) = e.GetOldAndNewValue(); // If flyout is changed while one is already open, make sure we // close the old one first diff --git a/src/Avalonia.Controls/SplitButton/ToggleSplitButton.cs b/src/Avalonia.Controls/SplitButton/ToggleSplitButton.cs index 879c1aa6e1..cd34f8060a 100644 --- a/src/Avalonia.Controls/SplitButton/ToggleSplitButton.cs +++ b/src/Avalonia.Controls/SplitButton/ToggleSplitButton.cs @@ -90,7 +90,7 @@ namespace Avalonia.Controls //////////////////////////////////////////////////////////////////////// /// - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs e) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs e) { if (e.Property == IsCheckedProperty) { diff --git a/src/Avalonia.Controls/TextBlock.cs b/src/Avalonia.Controls/TextBlock.cs index 36e5f7236f..3b8842fa0e 100644 --- a/src/Avalonia.Controls/TextBlock.cs +++ b/src/Avalonia.Controls/TextBlock.cs @@ -639,7 +639,7 @@ namespace Avalonia.Controls private static bool IsValidLineHeight(double lineHeight) => double.IsNaN(lineHeight) || lineHeight > 0; - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls/TextBox.cs b/src/Avalonia.Controls/TextBox.cs index 947830b217..1f3dbc87db 100644 --- a/src/Avalonia.Controls/TextBox.cs +++ b/src/Avalonia.Controls/TextBox.cs @@ -585,7 +585,7 @@ namespace Avalonia.Controls _imClient.SetPresenter(null, null); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); @@ -594,7 +594,7 @@ namespace Avalonia.Controls UpdatePseudoclasses(); UpdateCommandStates(); } - else if (change.Property == IsUndoEnabledProperty && change.NewValue.GetValueOrDefault() == false) + else if (change.Property == IsUndoEnabledProperty && change.GetNewValue() == false) { // from docs at // https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.primitives.textboxbase.isundoenabled: diff --git a/src/Avalonia.Controls/TransitioningContentControl.cs b/src/Avalonia.Controls/TransitioningContentControl.cs index cb0d229110..451e234653 100644 --- a/src/Avalonia.Controls/TransitioningContentControl.cs +++ b/src/Avalonia.Controls/TransitioningContentControl.cs @@ -61,7 +61,7 @@ public class TransitioningContentControl : ContentControl _lastTransitionCts?.Cancel(); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Controls/TrayIcon.cs b/src/Avalonia.Controls/TrayIcon.cs index b8ab48a2b7..2ccb03e447 100644 --- a/src/Avalonia.Controls/TrayIcon.cs +++ b/src/Avalonia.Controls/TrayIcon.cs @@ -206,7 +206,7 @@ namespace Avalonia.Controls } } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); @@ -216,15 +216,15 @@ namespace Avalonia.Controls } else if (change.Property == IsVisibleProperty) { - _impl?.SetIsVisible(change.NewValue.GetValueOrDefault()); + _impl?.SetIsVisible(change.GetNewValue()); } else if (change.Property == ToolTipTextProperty) { - _impl?.SetToolTipText(change.NewValue.GetValueOrDefault()); + _impl?.SetToolTipText(change.GetNewValue()); } else if (change.Property == MenuProperty) { - _impl?.MenuExporter?.SetNativeMenu(change.NewValue.GetValueOrDefault()); + _impl?.MenuExporter?.SetNativeMenu(change.GetNewValue()); } } diff --git a/src/Avalonia.Controls/Viewbox.cs b/src/Avalonia.Controls/Viewbox.cs index 50b9560cac..dd74d549bd 100644 --- a/src/Avalonia.Controls/Viewbox.cs +++ b/src/Avalonia.Controls/Viewbox.cs @@ -82,13 +82,13 @@ namespace Avalonia.Controls set => _containerVisual.RenderTransform = value; } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == ChildProperty) { - _containerVisual.Child = change.NewValue.GetValueOrDefault(); + _containerVisual.Child = change.GetNewValue(); InvalidateMeasure(); } } diff --git a/src/Avalonia.Controls/Window.cs b/src/Avalonia.Controls/Window.cs index 993b3aaa1b..a5f99918b2 100644 --- a/src/Avalonia.Controls/Window.cs +++ b/src/Avalonia.Controls/Window.cs @@ -1019,16 +1019,16 @@ namespace Avalonia.Controls /// protected virtual void OnClosing(CancelEventArgs e) => Closing?.Invoke(this, e); - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == SystemDecorationsProperty) { - var typedNewValue = change.NewValue.GetValueOrDefault(); + var (typedOldValue, typedNewValue) = change.GetOldAndNewValue(); PlatformImpl?.SetSystemDecorations(typedNewValue); - var o = change.OldValue.GetValueOrDefault() == SystemDecorations.Full; + var o = typedOldValue == SystemDecorations.Full; var n = typedNewValue == SystemDecorations.Full; if (o != n) diff --git a/src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.cs b/src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.cs index cb98fb70f3..ec7e91c8be 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.cs @@ -92,7 +92,7 @@ namespace Avalonia.Diagnostics.Controls set => SetValue(HighlightProperty, value); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); @@ -102,7 +102,7 @@ namespace Avalonia.Diagnostics.Controls { _isUpdatingThickness = true; - var value = change.NewValue.GetValueOrDefault(); + var value = change.GetNewValue(); Left = value.Left; Top = value.Top; diff --git a/src/Avalonia.Input/InputElement.cs b/src/Avalonia.Input/InputElement.cs index 6bc9294ddd..9fe07f62dd 100644 --- a/src/Avalonia.Input/InputElement.cs +++ b/src/Avalonia.Input/InputElement.cs @@ -601,21 +601,21 @@ namespace Avalonia.Input { } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == IsFocusedProperty) { - UpdatePseudoClasses(change.NewValue.GetValueOrDefault(), null); + UpdatePseudoClasses(change.GetNewValue(), null); } else if (change.Property == IsPointerOverProperty) { - UpdatePseudoClasses(null, change.NewValue.GetValueOrDefault()); + UpdatePseudoClasses(null, change.GetNewValue()); } else if (change.Property == IsKeyboardFocusWithinProperty) { - PseudoClasses.Set(":focus-within", change.NewValue.GetValueOrDefault()); + PseudoClasses.Set(":focus-within", change.GetNewValue()); } } diff --git a/src/Avalonia.Layout/StackLayout.cs b/src/Avalonia.Layout/StackLayout.cs index c63fe5e405..00ac4a37f0 100644 --- a/src/Avalonia.Layout/StackLayout.cs +++ b/src/Avalonia.Layout/StackLayout.cs @@ -320,11 +320,11 @@ namespace Avalonia.Layout InvalidateLayout(); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { if (change.Property == OrientationProperty) { - var orientation = change.NewValue.GetValueOrDefault(); + var orientation = change.GetNewValue(); //Note: For StackLayout Vertical Orientation means we have a Vertical ScrollOrientation. //Horizontal Orientation means we have a Horizontal ScrollOrientation. diff --git a/src/Avalonia.Layout/UniformGridLayout.cs b/src/Avalonia.Layout/UniformGridLayout.cs index 3b82ece886..418cd55e41 100644 --- a/src/Avalonia.Layout/UniformGridLayout.cs +++ b/src/Avalonia.Layout/UniformGridLayout.cs @@ -471,11 +471,11 @@ namespace Avalonia.Layout gridState.ClearElementOnDataSourceChange(context, args); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { if (change.Property == OrientationProperty) { - var orientation = change.NewValue.GetValueOrDefault(); + var orientation = change.GetNewValue(); //Note: For UniformGridLayout Vertical Orientation means we have a Horizontal ScrollOrientation. Horizontal Orientation means we have a Vertical ScrollOrientation. //i.e. the properties are the inverse of each other. @@ -484,31 +484,31 @@ namespace Avalonia.Layout } else if (change.Property == MinColumnSpacingProperty) { - _minColumnSpacing = change.NewValue.GetValueOrDefault(); + _minColumnSpacing = change.GetNewValue(); } else if (change.Property == MinRowSpacingProperty) { - _minRowSpacing = change.NewValue.GetValueOrDefault(); + _minRowSpacing = change.GetNewValue(); } else if (change.Property == ItemsJustificationProperty) { - _itemsJustification = change.NewValue.GetValueOrDefault(); + _itemsJustification = change.GetNewValue(); } else if (change.Property == ItemsStretchProperty) { - _itemsStretch = change.NewValue.GetValueOrDefault(); + _itemsStretch = change.GetNewValue(); } else if (change.Property == MinItemWidthProperty) { - _minItemWidth = change.NewValue.GetValueOrDefault(); + _minItemWidth = change.GetNewValue(); } else if (change.Property == MinItemHeightProperty) { - _minItemHeight = change.NewValue.GetValueOrDefault(); + _minItemHeight = change.GetNewValue(); } else if (change.Property == MaximumRowsOrColumnsProperty) { - _maximumRowsOrColumns = change.NewValue.GetValueOrDefault(); + _maximumRowsOrColumns = change.GetNewValue(); } InvalidateLayout(); diff --git a/src/Avalonia.Layout/WrapLayout/WrapLayout.cs b/src/Avalonia.Layout/WrapLayout/WrapLayout.cs index aab0272f37..52de1dd3b8 100644 --- a/src/Avalonia.Layout/WrapLayout/WrapLayout.cs +++ b/src/Avalonia.Layout/WrapLayout/WrapLayout.cs @@ -322,7 +322,7 @@ namespace Avalonia.Layout return finalSize; } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Themes.Default/SimpleTheme.cs b/src/Avalonia.Themes.Default/SimpleTheme.cs index 1d9f2d5f9d..6929660757 100644 --- a/src/Avalonia.Themes.Default/SimpleTheme.cs +++ b/src/Avalonia.Themes.Default/SimpleTheme.cs @@ -116,7 +116,7 @@ namespace Avalonia.Themes.Default return false; } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == ModeProperty) diff --git a/src/Avalonia.Themes.Fluent/FluentTheme.cs b/src/Avalonia.Themes.Fluent/FluentTheme.cs index d1136d44a4..f6b47a5466 100644 --- a/src/Avalonia.Themes.Fluent/FluentTheme.cs +++ b/src/Avalonia.Themes.Fluent/FluentTheme.cs @@ -78,7 +78,7 @@ namespace Avalonia.Themes.Fluent set => SetValue(DensityStyleProperty, value); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == ModeProperty) diff --git a/src/Avalonia.Visuals/Media/DashStyle.cs b/src/Avalonia.Visuals/Media/DashStyle.cs index 2ec9436ede..abee580020 100644 --- a/src/Avalonia.Visuals/Media/DashStyle.cs +++ b/src/Avalonia.Visuals/Media/DashStyle.cs @@ -112,14 +112,13 @@ namespace Avalonia.Media /// public ImmutableDashStyle ToImmutable() => new ImmutableDashStyle(Dashes, Offset); - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); if (change.Property == DashesProperty) { - var oldValue = change.OldValue.GetValueOrDefault>(); - var newValue = change.NewValue.GetValueOrDefault>(); + var (oldValue, newValue) = change.GetOldAndNewValue>(); if (oldValue is object) { diff --git a/src/Avalonia.Visuals/Media/DrawingImage.cs b/src/Avalonia.Visuals/Media/DrawingImage.cs index 488822b693..b4441f803f 100644 --- a/src/Avalonia.Visuals/Media/DrawingImage.cs +++ b/src/Avalonia.Visuals/Media/DrawingImage.cs @@ -71,7 +71,7 @@ namespace Avalonia.Media } /// - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Visuals/Media/GeometryGroup.cs b/src/Avalonia.Visuals/Media/GeometryGroup.cs index c6b666b2eb..b90c9c6d8a 100644 --- a/src/Avalonia.Visuals/Media/GeometryGroup.cs +++ b/src/Avalonia.Visuals/Media/GeometryGroup.cs @@ -68,7 +68,7 @@ namespace Avalonia.Media return null; } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); diff --git a/src/Avalonia.Visuals/Media/Pen.cs b/src/Avalonia.Visuals/Media/Pen.cs index 65ba851100..a1fc20496d 100644 --- a/src/Avalonia.Visuals/Media/Pen.cs +++ b/src/Avalonia.Visuals/Media/Pen.cs @@ -192,7 +192,7 @@ namespace Avalonia.Media MiterLimit); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { _invalidated?.Invoke(this, EventArgs.Empty); if(change.Property == BrushProperty) diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_OnPropertyChanged.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_OnPropertyChanged.cs index e8fc3f9f40..7f4dcace71 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_OnPropertyChanged.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_OnPropertyChanged.cs @@ -109,25 +109,26 @@ namespace Avalonia.Base.UnitTests public List Changes { get; } public List CoreChanges { get; } - protected override void OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change) { CoreChanges.Add(Clone(change)); base.OnPropertyChangedCore(change); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { Changes.Add(Clone(change)); base.OnPropertyChanged(change); } - private static AvaloniaPropertyChangedEventArgs Clone(AvaloniaPropertyChangedEventArgs change) + private static AvaloniaPropertyChangedEventArgs Clone(AvaloniaPropertyChangedEventArgs change) { - var result = new AvaloniaPropertyChangedEventArgs( + var e = (AvaloniaPropertyChangedEventArgs)change; + var result = new AvaloniaPropertyChangedEventArgs( change.Sender, - change.Property, - change.OldValue, - change.NewValue, + e.Property, + e.OldValue, + e.NewValue, change.Priority); if (!change.IsEffectiveValueChange) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/InitializationOrderTracker.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/InitializationOrderTracker.cs index cb37dea220..7ba21c4673 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/InitializationOrderTracker.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/InitializationOrderTracker.cs @@ -18,7 +18,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml base.OnAttachedToLogicalTree(e); } - protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { Order.Add($"Property {change.Property.Name} Changed"); base.OnPropertyChanged(change);