diff --git a/src/Ursa/Controls/MessageBox/MessageBoxWindow.cs b/src/Ursa/Controls/MessageBox/MessageBoxWindow.cs index 18fb7fb..ba68b33 100644 --- a/src/Ursa/Controls/MessageBox/MessageBoxWindow.cs +++ b/src/Ursa/Controls/MessageBox/MessageBoxWindow.cs @@ -13,7 +13,7 @@ namespace Ursa.Controls; [TemplatePart(PART_OKButton, typeof(Button))] [TemplatePart(PART_CancelButton, typeof(Button))] [TemplatePart(PART_YesButton, typeof(Button))] -public class MessageBoxWindow: Window +public class MessageBoxWindow : Window { public const string PART_CloseButton = "PART_CloseButton"; public const string PART_YesButton = "PART_YesButton"; @@ -22,17 +22,18 @@ public class MessageBoxWindow: Window public const string PART_CancelButton = "PART_CancelButton"; private MessageBoxButton _buttonConfigs; - + private Button? _closeButton; private Button? _yesButton; private Button? _noButton; private Button? _okButton; private Button? _cancelButton; - + protected override Type StyleKeyOverride => typeof(MessageBoxWindow); - public static readonly StyledProperty MessageIconProperty = AvaloniaProperty.Register( - nameof(MessageIcon)); + public static readonly StyledProperty MessageIconProperty = + AvaloniaProperty.Register( + nameof(MessageIcon)); public MessageBoxIcon MessageIcon { @@ -57,22 +58,27 @@ public class MessageBoxWindow: Window { _closeButton.Click -= OnCloseButtonClick; } + if (_yesButton != null) { _yesButton.Click -= OnYesButtonClick; } + if (_noButton != null) { _noButton.Click -= OnNoButtonClick; } + if (_okButton != null) { _okButton.Click -= OnOKButtonClick; } + if (_cancelButton != null) { _cancelButton.Click -= OnCancelButtonClick; } + _yesButton = e.NameScope.Find