The current version CancelCommand.Wrap() does not propagate IsCancelled information to the Execution.IsCancelled of the parent AsyncCommand.
In the following code
public AsyncCommandsDemoViewModel(IDataClient dataClient)
{
this.CancelGetData = new CancelCommand();
this.GetData = new AsyncCommand(
this.CancelGetData.Wrap(
async cancellationToken =>
this.Data = await dataClient.GetDataAsync(cancellationToken)));
}
if the CancelGetData command is executed, GetData.Execuction.IsCancelled never becomes true.