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); }