1
0
Эх сурвалжийг харах

Add EventArgs parameter to OnLoaded/Unloaded methods

robloo 2 жил өмнө
parent
commit
85390a1812

+ 3 - 2
samples/AppWithoutLifetime/MainWindow.axaml.cs

@@ -17,10 +17,11 @@ public partial class MainWindow : Window
         AvaloniaXamlLoader.Load(this);
     }
 
-    protected override void OnLoaded()
+    /// <inheritdoc/>
+    protected override void OnLoaded(RoutedEventArgs e)
     {
         this.AttachDevTools();
-        base.OnLoaded();
+        base.OnLoaded(e);
     }
 
     public void Open(object sender, RoutedEventArgs e)

+ 4 - 2
samples/AppWithoutLifetime/Sub.axaml.cs

@@ -1,5 +1,6 @@
 using Avalonia;
 using Avalonia.Controls;
+using Avalonia.Interactivity;
 using Avalonia.Markup.Xaml;
 
 namespace AppWithoutLifetime;
@@ -16,9 +17,10 @@ public partial class Sub : Window
         AvaloniaXamlLoader.Load(this);
     }
 
-    protected override void OnLoaded()
+    /// <inheritdoc/>
+    protected override void OnLoaded(RoutedEventArgs e)
     {
         this.AttachDevTools();
-        base.OnLoaded();
+        base.OnLoaded(e);
     }
 }

+ 4 - 2
samples/SafeAreaDemo/Views/MainView.xaml.cs

@@ -1,4 +1,5 @@
 using Avalonia.Controls;
+using Avalonia.Interactivity;
 using Avalonia.Markup.Xaml;
 using SafeAreaDemo.ViewModels;
 
@@ -11,9 +12,10 @@ namespace SafeAreaDemo.Views
             AvaloniaXamlLoader.Load(this);
         }
 
-        protected override void OnLoaded()
+        /// <inheritdoc/>
+        protected override void OnLoaded(RoutedEventArgs e)
         {
-            base.OnLoaded();
+            base.OnLoaded(e);
 
             var insetsManager = TopLevel.GetTopLevel(this)?.InsetsManager;
             if (insetsManager != null && DataContext is MainViewModel viewModel)

+ 10 - 10
src/Avalonia.Controls/Control.cs

@@ -316,7 +316,8 @@ namespace Avalonia.Controls
                 ((ILogical)this).IsAttachedToLogicalTree)
             {
                 _isLoaded = true;
-                OnLoaded();
+
+                OnLoaded(new RoutedEventArgs(LoadedEvent, this));
             }
         }
 
@@ -333,28 +334,27 @@ namespace Avalonia.Controls
                 _loadedQueue.Remove(this);
 
                 _isLoaded = false;
-                OnUnloaded();
+
+                OnUnloaded(new RoutedEventArgs(UnloadedEvent, this));
             }
         }
 
         /// <summary>
         /// Invoked just before the <see cref="Loaded"/> event.
         /// </summary>
-        protected virtual void OnLoaded()
+        /// <param name="e">The event args.</param>
+        protected virtual void OnLoaded(RoutedEventArgs e)
         {
-            var eventArgs = new RoutedEventArgs(LoadedEvent);
-            eventArgs.Source = null;
-            RaiseEvent(eventArgs);
+            RaiseEvent(e);
         }
 
         /// <summary>
         /// Invoked just before the <see cref="Unloaded"/> event.
         /// </summary>
-        protected virtual void OnUnloaded()
+        /// <param name="e">The event args.</param>
+        protected virtual void OnUnloaded(RoutedEventArgs e)
         {
-            var eventArgs = new RoutedEventArgs(UnloadedEvent);
-            eventArgs.Source = null;
-            RaiseEvent(eventArgs);
+            RaiseEvent(e);
         }
 
         /// <inheritdoc/>

+ 4 - 2
src/Avalonia.Controls/ToggleSwitch.cs

@@ -3,6 +3,7 @@ using Avalonia.Controls.Metadata;
 using Avalonia.Controls.Presenters;
 using Avalonia.Controls.Primitives;
 using Avalonia.Controls.Templates;
+using Avalonia.Interactivity;
 using Avalonia.LogicalTree;
 
 namespace Avalonia.Controls
@@ -200,9 +201,10 @@ namespace Avalonia.Controls
             }
         }
 
-        protected override void OnLoaded()
+        /// <inheritdoc/>
+        protected override void OnLoaded(RoutedEventArgs e)
         {
-            base.OnLoaded();
+            base.OnLoaded(e);
             UpdateKnobTransitions();
         }