using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; namespace QuickMVVMSetup { public class RelayCommand : ICommand { public event EventHandler? CanExecuteChanged; private Action _executeAction; private Func _canExecuteAction; public bool CanExecute(object? parameter) { if (_canExecuteAction == null) { return true; } return _canExecuteAction.Invoke(parameter); } public void Execute(object? parameter) { _executeAction.Invoke(parameter); } public RelayCommand(Action executeAction, Func canExecuteFunc) { _executeAction = executeAction; _canExecuteAction = canExecuteFunc; } } }