/// <summary> /// Выполнение команды /// </summary> /// <param name="param">The param.</param> public virtual void DoExecute(object param = null) { // Вызывает выполнении команды с возможностью отмены CancelCommandEventArgs args = new CancelCommandEventArgs() { Parameter = param, Cancel = false }; InvokeExecuting(args); // Если событие было отменено - останавливаем. if (args.Cancel) { return; } // Вызываем действие с / без параметров, в зависимости от того. Какое было устанвленно. InvokeAction(param); // Call the executed function. InvokeExecuted(new CommandEventArgs() { Parameter = param }); }
protected void InvokeExecuting(CancelCommandEventArgs args) { // Call the executed event. ThreadManager.Instance.InvokeUI((arg) => { Executing?.Invoke(this, arg); }, args); }