/// <summary> /// Adds the new project item to the project item collection. /// </summary> /// <param name="addToSelected">Whether or not the items should be added under the selected item.</param> /// <param name="projectItems">The project item to add.</param> public void AddNewProjectItems(Boolean addToSelected = true, params ProjectItem[] projectItems) { if (projectItems.IsNullOrEmpty()) { return; } foreach (ProjectItem projectItem in projectItems) { if (ProjectRoot.HasNode(projectItem)) { return; } ProjectItem target = this.SelectedProjectItems?.FirstOrDefault(); // Atempt to find the correct folder to place the new item into while (target != null && !(target is FolderItem)) { target = target.Parent as ProjectItem; } FolderItem targetFolder = target as FolderItem; if (target != null) { targetFolder.AddChild(projectItem); } else { this.ProjectRoot.AddChild(projectItem); } } this.NotifyObserversStructureChange(); }