| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Input;namespace FurnaceGasPanelUI.Controls.Common{    public class RelayCommand : ICommand    {        private readonly Func<Object, Boolean> canExecute;        private readonly Action<Object> execute;        public RelayCommand(Action<Object> execute) : this(execute, null)        {        }        public RelayCommand(Action<Object> execute, Func<Object, Boolean> canExecute)        {            this.execute = execute ?? throw new ArgumentNullException("execute");            this.canExecute = canExecute;        }        public event EventHandler CanExecuteChanged        {            add            {                if (canExecute != null)                    CommandManager.RequerySuggested += value;            }            remove            {                if (canExecute != null)                    CommandManager.RequerySuggested -= value;            }        }        public Boolean CanExecute(Object parameter)        {            return canExecute == null ? true : canExecute(parameter);        }        public void Execute(Object parameter)        {            execute(parameter);        }    }}
 |