using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; namespace Toolkit.Foundation; public partial class CommandValueViewModel(IServiceProvider provider, IServiceFactory factory, IMessenger messenger, IDisposer disposer) : Observable(provider, factory, messenger, disposer) where TValue : notnull { public IRelayCommand InvokeCommand => new AsyncRelayCommand(InvokeAsync); protected virtual Task InvokeAsync() => Task.CompletedTask; }