diff --git a/src/Perspex.Controls/Primitives/Popup.cs b/src/Perspex.Controls/Primitives/Popup.cs index ae6291aa17..ce409b4256 100644 --- a/src/Perspex.Controls/Primitives/Popup.cs +++ b/src/Perspex.Controls/Primitives/Popup.cs @@ -25,7 +25,10 @@ namespace Perspex.Controls.Primitives /// Defines the property. /// public static readonly PerspexProperty IsOpenProperty = - PerspexProperty.Register(nameof(IsOpen)); + PerspexProperty.RegisterDirect( + nameof(IsOpen), + o => o.IsOpen, + (o, v) => o.IsOpen = v); /// /// Defines the property. @@ -45,14 +48,8 @@ namespace Perspex.Controls.Primitives public static readonly PerspexProperty StaysOpenProperty = PerspexProperty.Register(nameof(StaysOpen), true); - /// - /// The root of the popup. - /// + private bool _isOpen; private PopupRoot _popupRoot; - - /// - /// The top level control of the Popup's visual tree. - /// private TopLevel _topLevel; /// @@ -108,8 +105,8 @@ namespace Perspex.Controls.Primitives /// public bool IsOpen { - get { return GetValue(IsOpenProperty); } - set { SetValue(IsOpenProperty, value); } + get { return _isOpen; } + set { SetAndRaise(IsOpenProperty, ref _isOpen, value); } } ///