diff --git a/src/CommunityToolkit.Maui.Core/Handlers/Popup/PopUpHandler.windows.cs b/src/CommunityToolkit.Maui.Core/Handlers/Popup/PopUpHandler.windows.cs index 0c3e24321..875840efc 100644 --- a/src/CommunityToolkit.Maui.Core/Handlers/Popup/PopUpHandler.windows.cs +++ b/src/CommunityToolkit.Maui.Core/Handlers/Popup/PopUpHandler.windows.cs @@ -95,7 +95,11 @@ public static void MapSize(PopupHandler handler, IPopup view) /// protected override void DisconnectHandler(Popup platformView) { - ArgumentNullException.ThrowIfNull(VirtualView.Parent); + if (VirtualView.Parent is null) + { + return; + } + ArgumentNullException.ThrowIfNull(VirtualView.Handler?.MauiContext); var parent = VirtualView.Parent.ToPlatform(VirtualView.Handler.MauiContext); parent.IsHitTestVisible = true; diff --git a/src/CommunityToolkit.Maui/Views/Popup/Popup.shared.cs b/src/CommunityToolkit.Maui/Views/Popup/Popup.shared.cs index d75929ce0..eef0f7267 100644 --- a/src/CommunityToolkit.Maui/Views/Popup/Popup.shared.cs +++ b/src/CommunityToolkit.Maui/Views/Popup/Popup.shared.cs @@ -250,6 +250,7 @@ protected virtual async Task OnClosed(object? result, bool wasDismissedByTapping ((IPopup)this).OnClosed(result); await popupDismissedTaskCompletionSource.Task; + Parent = null; dismissWeakEventManager.HandleEvent(this, new PopupClosedEventArgs(result, wasDismissedByTappingOutsideOfPopup), nameof(Closed)); }