diff --git a/src/Avalonia.Controls/HotkeyManager.cs b/src/Avalonia.Controls/HotkeyManager.cs
index b104b7a9a8..f210ecfdaf 100644
--- a/src/Avalonia.Controls/HotkeyManager.cs
+++ b/src/Avalonia.Controls/HotkeyManager.cs
@@ -22,7 +22,7 @@ namespace Avalonia.Controls
private ICommand GetCommand() => CommandSource.Command;
- public bool CanExecute(object parameter) => GetCommand()?.CanExecute(parameter) ?? false;
+ public bool CanExecute(object parameter) => CommandSource.IsEffectivelyEnabled;
public void Execute(object parameter) => GetCommand()?.Execute(parameter);
diff --git a/src/Avalonia.Input/ICommandSource.cs b/src/Avalonia.Input/ICommandSource.cs
index b0dd75e12e..ba2e8eed4e 100644
--- a/src/Avalonia.Input/ICommandSource.cs
+++ b/src/Avalonia.Input/ICommandSource.cs
@@ -27,5 +27,10 @@ namespace Avalonia.Input
///
///
void CanExecuteChanged(object sender, System.EventArgs e);
+
+ ///
+ /// Gets a value indicating whether this control and all its parents are enabled.
+ ///
+ bool IsEffectivelyEnabled { get; }
}
}