View difference between Paste ID: TCm9cx7u and WUFucf0W
SHOW: | | - or go back to the newest paste.
1-
public class RelayCommand<T> : ICommand
1+
using System;
2-
    {
2+
using System.Windows.Input;
3-
        private readonly Action<T> _execute = null;
3+
4-
        private readonly Func<T, bool> _canExecute = null;
4+
public class RelayCommand<T> : ICommand {
5
    private readonly Action<T> _execute = null;
6-
        public RelayCommand(Action<T> execute, Func<T, bool> canExecute = null)
6+
    private readonly Func<T, bool> _canExecute = null;
7-
        {
7+
8-
            _execute = execute ?? throw new ArgumentNullException(nameof(execute));
8+
    public RelayCommand(Action<T> execute, Func<T, bool> canExecute = null) {
9-
            _canExecute = canExecute ?? (_ => true);
9+
        _execute = execute ?? throw new ArgumentNullException(nameof(execute));
10-
        }
10+
        _canExecute = canExecute ?? (_ => true);
11
    }
12-
        public event EventHandler CanExecuteChanged
12+
13-
        {
13+
    public event EventHandler CanExecuteChanged {
14-
            add => CommandManager.RequerySuggested += value;
14+
        add => CommandManager.RequerySuggested += value;
15-
            remove => CommandManager.RequerySuggested -= value;
15+
        remove => CommandManager.RequerySuggested -= value;
16-
        }
16+
17
18-
        public bool CanExecute(object parameter) => _canExecute((T)parameter);
18+
    public bool CanExecute(object parameter) => _canExecute((T)parameter);
19
20-
        public void Execute(object parameter) => _execute((T)parameter);
20+
    public void Execute(object parameter) => _execute((T)parameter);
21
}
22
23-
    public class RelayCommand : RelayCommand<object>
23+
public class RelayCommand : RelayCommand<object> {
24-
    {
24+
    public RelayCommand(Action execute)
25-
        public RelayCommand(Action execute)
25+
        : base(_ => execute()) { }
26-
            : base(_ => execute()) { }
26+
27
    public RelayCommand(Action execute, Func<bool> canExecute)
28-
        public RelayCommand(Action execute, Func<bool> canExecute)
28+
        : base(_ => execute(), _ => canExecute()) { }
29-
            : base(_ => execute(), _ => canExecute()) { }
29+
}
30-
    }
30+