Browse Source

Merge pull request #2298 from donandren/prs/buttonimpr

Check command canexecute before execute for button/menu command
Steven Kirk 6 years ago
parent
commit
c429a5a60b
2 changed files with 2 additions and 2 deletions
  1. 1 1
      src/Avalonia.Controls/Button.cs
  2. 1 1
      src/Avalonia.Controls/MenuItem.cs

+ 1 - 1
src/Avalonia.Controls/Button.cs

@@ -217,7 +217,7 @@ namespace Avalonia.Controls
             var e = new RoutedEventArgs(ClickEvent);
             RaiseEvent(e);
 
-            if (Command != null)
+            if (!e.Handled && Command?.CanExecute(CommandParameter) == true)
             {
                 Command.Execute(CommandParameter);
                 e.Handled = true;

+ 1 - 1
src/Avalonia.Controls/MenuItem.cs

@@ -287,7 +287,7 @@ namespace Avalonia.Controls
         /// <param name="e">The click event args.</param>
         protected virtual void OnClick(RoutedEventArgs e)
         {
-            if (Command != null)
+            if (!e.Handled && Command?.CanExecute(CommandParameter) == true)
             {
                 Command.Execute(CommandParameter);
                 e.Handled = true;