CmdPal: Use a factory for building the context menu VMs (#45572)

_targets #45566_

doesn't actually do anything, just moves around the instantiation of
command context item VMs.

This will let use add pin/unpin commands later

related to https://github.com/microsoft/PowerToys/issues/45191
related to https://github.com/microsoft/PowerToys/issues/45201
This commit is contained in:
Mike Griese
2026-02-24 06:26:33 -06:00
committed by GitHub
parent e8ccb7099e
commit 4f5837d4e9
9 changed files with 144 additions and 59 deletions

View File

@@ -32,6 +32,7 @@ public partial class ListViewModel : PageViewModel, IDisposable
private readonly ExtensionObject<IListPage> _model;
private readonly Lock _listLock = new();
private readonly IContextMenuFactory? _contextMenuFactory;
private InterlockedBoolean _isLoading;
private bool _isFetching;
@@ -88,11 +89,12 @@ public partial class ListViewModel : PageViewModel, IDisposable
}
}
public ListViewModel(IListPage model, TaskScheduler scheduler, AppExtensionHost host, CommandProviderContext providerContext)
public ListViewModel(IListPage model, TaskScheduler scheduler, AppExtensionHost host, CommandProviderContext providerContext, IContextMenuFactory? contextMenuFactory)
: base(model, scheduler, host, providerContext)
{
_model = new(model);
EmptyContent = new(new(null), PageContext);
_contextMenuFactory = contextMenuFactory;
EmptyContent = new(new(null), PageContext, _contextMenuFactory);
}
private void FiltersPropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)