public void Execute(IRevertibleCommand revertibleCommand) { lock (_lock) { NotifyBeforeUndoRedoCommandExecuted(new BeforeUndoRedoCommandExecutedEventHandlerArgs(UndoRedoExecutionCategory.NEW)); revertibleCommand.Do(); AddExecutedCommand(revertibleCommand); NotifyUndoRedoCommandExecuted(new UndoRedoCommandExecutedEventHandlerArgs(UndoRedoExecutionCategory.NEW)); UpdateCanUndoCanRedo(); } }