Search code examples
xamlmvvmcommandtoolkitwinui

Using CanExecute in RelayCommand MVVM Toolkit


I have bound button command to one RelayCommand from MVVM Toolkit, which executes some function, with following:

[RelayCommand]
private async void SomeMethod() {}

I want to prevent multiple clicks on the button hence, preventing multiple method calls via CanExecute parameter of RelayCommand, but I can't figure that one out.

I know that RelayCommand first checks with CanExecute if it is possible to execute the command, but I do not understand how to go about implementing it.

I have searched numerous questions on the topic but could get nowhere near to solution.

Edit: Also there is no SomeMethod.isRunning property.


Solution

  • To implement CanExecute, You can try the following example:

    [RelayCommand(CanExecute = nameof(IsSomeMethodExcutable))]
    private async void SomeMethod(){}
    
    private bool IsSomeMethodExcutable() { return _isBusy;}