diff --git a/src/Controls/src/Core/HandlerImpl/Window.Impl.cs b/src/Controls/src/Core/HandlerImpl/Window.Impl.cs index 28f6f88d9460..dbee92a843f5 100644 --- a/src/Controls/src/Core/HandlerImpl/Window.Impl.cs +++ b/src/Controls/src/Core/HandlerImpl/Window.Impl.cs @@ -117,49 +117,6 @@ void OnCollectionChanged(object? sender, NotifyCollectionChangedEventArgs e) } } - static void OnPageChanged(BindableObject bindable, object oldValue, object newValue) - { - if (bindable is not Window window) - return; - - var oldPage = oldValue as Page; - if (oldPage != null) - { - window.InternalChildren.Remove(oldPage); - oldPage.HandlerChanged -= OnPageHandlerChanged; - oldPage.HandlerChanging -= OnPageHandlerChanging; - } - - var newPage = newValue as Page; - if (newPage != null) - { - window.InternalChildren.Add(newPage); - newPage.NavigationProxy.Inner = window.NavigationProxy; - } - - window.ModalNavigationManager.SettingNewPage(); - - if (newPage != null) - { - newPage.HandlerChanged += OnPageHandlerChanged; - newPage.HandlerChanging += OnPageHandlerChanging; - - if (newPage.Handler != null) - OnPageHandlerChanged(newPage, EventArgs.Empty); - } - - void OnPageHandlerChanged(object? sender, EventArgs e) - { - window.ModalNavigationManager.PageAttachedHandler(); - window.AlertManager.Subscribe(); - } - - void OnPageHandlerChanging(object? sender, HandlerChangingEventArgs e) - { - window.AlertManager.Unsubscribe(); - } - } - void SendWindowAppearing() { Page?.SendAppearing(); @@ -240,8 +197,8 @@ static void OnPageChanged(BindableObject bindable, object oldValue, object newVa if (oldPage != null) { window.InternalChildren.Remove(oldPage); - oldPage.AttachedHandler -= OnPageAttachedHandler; - oldPage.DetachedHandler -= OnPageDetachedHandler; + oldPage.HandlerChanged -= OnPageHandlerChanged; + oldPage.HandlerChanging -= OnPageHandlerChanging; } var newPage = newValue as Page; @@ -255,17 +212,20 @@ static void OnPageChanged(BindableObject bindable, object oldValue, object newVa if (newPage != null) { - newPage.AttachedHandler += OnPageAttachedHandler; - newPage.DetachedHandler += OnPageDetachedHandler; + newPage.HandlerChanged += OnPageHandlerChanged; + newPage.HandlerChanging += OnPageHandlerChanging; + + if (newPage.Handler != null) + OnPageHandlerChanged(newPage, EventArgs.Empty); } - void OnPageAttachedHandler(object? sender, EventArgs e) + void OnPageHandlerChanged(object? sender, EventArgs e) { window.ModalNavigationManager.PageAttachedHandler(); window.AlertManager.Subscribe(); } - void OnPageDetachedHandler(object? sender, EventArgs e) + void OnPageHandlerChanging(object? sender, HandlerChangingEventArgs e) { window.AlertManager.Unsubscribe(); }