RelayCommand.cs 663 B

12345678910111213141516171819202122232425
  1. using System.Windows.Input;
  2. namespace AGEHAB.RelatorioSeadIpasgo.Presentation.Commands;
  3. public class RelayCommand : ICommand
  4. {
  5. private readonly Action _execute;
  6. private readonly Func<bool>? _canExecute;
  7. public RelayCommand(Action execute, Func<bool>? canExecute = null)
  8. {
  9. _execute = execute;
  10. _canExecute = canExecute;
  11. }
  12. public event EventHandler? CanExecuteChanged;
  13. public bool CanExecute(object? parameter) => _canExecute?.Invoke() ?? true;
  14. public void Execute(object? parameter) => _execute();
  15. public void RaiseCanExecuteChanged()
  16. {
  17. CanExecuteChanged?.Invoke(this, EventArgs.Empty);
  18. }
  19. }