diff --git a/src/Files.App/Actions/Content/Selection/InvertSelectionAction.cs b/src/Files.App/Actions/Content/Selection/InvertSelectionAction.cs index 446bf8f53304..2cabaf47b25a 100644 --- a/src/Files.App/Actions/Content/Selection/InvertSelectionAction.cs +++ b/src/Files.App/Actions/Content/Selection/InvertSelectionAction.cs @@ -3,7 +3,7 @@ namespace Files.App.Actions { - internal class InvertSelectionAction : IAction + internal class InvertSelectionAction : ObservableObject, IAction { private readonly IContentPageContext context; @@ -41,6 +41,8 @@ public bool IsExecutable public InvertSelectionAction() { context = Ioc.Default.GetRequiredService(); + + context.PropertyChanged += Context_PropertyChanged; } public Task ExecuteAsync() @@ -49,5 +51,17 @@ public Task ExecuteAsync() return Task.CompletedTask; } + + private void Context_PropertyChanged(object? sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case nameof(IContentPageContext.PageType): + case nameof(IContentPageContext.HasItem): + case nameof(IContentPageContext.ShellPage): + OnPropertyChanged(nameof(IsExecutable)); + break; + } + } } }