diff --git a/src/Avalonia.Controls/Primitives/Popup.cs b/src/Avalonia.Controls/Primitives/Popup.cs index d9070197b6..f349bcf059 100644 --- a/src/Avalonia.Controls/Primitives/Popup.cs +++ b/src/Avalonia.Controls/Primitives/Popup.cs @@ -252,9 +252,9 @@ namespace Avalonia.Controls.Primitives else { var parentPopuproot = _topLevel as PopupRoot; - if (parentPopuproot != null && parentPopuproot.Parent != null) + if (parentPopuproot?.Parent is Popup popup) { - ((Popup)(parentPopuproot.Parent)).Closed += ParentClosed; + popup.Closed += ParentClosed; } } _topLevel.AddHandler(PointerPressedEvent, PointerPressedOutside, RoutingStrategies.Tunnel); @@ -293,9 +293,9 @@ namespace Avalonia.Controls.Primitives else { var parentPopuproot = _topLevel as PopupRoot; - if (parentPopuproot != null && parentPopuproot.Parent != null) + if (parentPopuproot?.Parent is Popup popup) { - ((Popup)parentPopuproot.Parent).Closed -= ParentClosed; + popup.Closed -= ParentClosed; } } _nonClientListener?.Dispose();