Open bradyguyc opened 2 years ago
I believe you can provide add property for controlling the CanExecute
of the RelayCommand
to prevent simultaneous executions.
private bool canTap;
public bool CanTap
{
get => canTap;
private set => SetProperty(ref canTap, value);
}
[RelayCommand(CanExecute = "CanTap")]
public async void Tap(object param)
{
try
{
CanTap = false;
// ....<snipped/>...
}
finally
{
CanTap = true;
}
}
It makes me wonder if there should be a [AsyncRelayCommand]
source generator as well.
Is there any update on this??
@ketakidevendra I have not experienced this problem in some time. I believe it was fixed in one of the many updates since I opened this ticket. I need to test and verify but have not noticed it happening in my app.
@bradyguyc - I face this in iOS.
Per the documentation on the [RelayCommand] source generator I believe that by default that multiple taps on a button should not execute the same command multiple times. However, I am experiencing the situation where I load a page from a tap gesture command and the page gets pushed multiple times. Trying to figure out how to prevent this from happening. Is this a bug or is there something missing in the code that prevents this from happening.
https://learn.microsoft.com/en-us/dotnet/communitytoolkit/mvvm/generators/relaycommand#handling-concurrent-executions
This can be observed in this test app https://bradyguychambers@dev.azure.com/bradyguychambers/MyNextBook/_git/Test%20Multiple%20Taps
This can be observed in this test app. https://bradyguychambers@dev.azure.com/bradyguychambers/MyNextBook/_git/Test%20Multiple%20Taps