1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System;
- using System.Windows.Input;
- namespace WatchDog.WPF
- {
- public class AnotherCommandImplementation : ICommand
- {
- private readonly Action<object> _execute;
- private readonly Func<object, bool> _canExecute;
- public AnotherCommandImplementation(Action<object> execute) : this(execute, null)
- {
- }
- public AnotherCommandImplementation(Action<object> execute, Func<object, bool> canExecute)
- {
- if (execute == null) throw new ArgumentNullException(nameof(execute));
- _execute = execute;
- _canExecute = canExecute ?? (x => true);
- }
- public bool CanExecute(object parameter)
- {
- return _canExecute(parameter);
- }
- public void Execute(object parameter)
- {
- _execute(parameter);
- }
- public event EventHandler CanExecuteChanged
- {
- add
- {
- CommandManager.RequerySuggested += value;
- }
- remove
- {
- CommandManager.RequerySuggested -= value;
- }
- }
- public void Refresh()
- {
- CommandManager.InvalidateRequerySuggested();
- }
- }
- }
|