Xamarin.CommunityToolkit by Microsoft

<PackageReference Include="Xamarin.CommunityToolkit" Version="1.2.0-pre2" />

 BaseCommand<TCanExecute>

public abstract class BaseCommand<TCanExecute>
Abstract Base Class used by AsyncCommand and AsyncValueCommand
public bool AllowsMultipleExecutions { get; }

Returns true if the Command allows simultaneous executions

protected int ExecutionCount { get; protected set; }

public bool IsExecuting { get; }

Returns true when the Command is currently executing. Returns false when the Command is not executing

Occurs when changes occur that affect whether or not the command should execute

public bool CanExecute(TCanExecute parameter)

Determines whether the command can execute in its current state

public void ChangeCanExecute()

Raises the `ICommand.CanExecuteChanged` event. Recommend using RaiseCanExecuteChanged() instead.

public void RaiseCanExecuteChanged()

Raises the `ICommand.CanExecuteChanged` event.