Пример #1
0
        private void Workspace_CurrentChanged(object sender, ProjectChangedEventArgs e)
        {
            if (_isUndoRedoInProgress)
            {
                return;
            }

            _undoStack.Push(e.OldProject);
            _redoStack.Clear();

            OnStateChanged();
        }
        public void ApplyChanges(Project newProject)
        {
            if (newProject == null)
            {
                throw new ArgumentNullException(nameof(newProject));
            }

            var oldProject = Current;

            Current = newProject;

            var changes = newProject.GetChanges(oldProject);
            var args    = new ProjectChangedEventArgs(oldProject, newProject, changes);

            CurrentChanged?.Invoke(this, args);
        }