/// <summary> /// Delete the project. This will remove the project and /// the project's view model. /// </summary> /// <param name="projectVM">Project to remove.</param> public void DeleteProject(ProjectListItemViewModel projectVM) { if (projectVM != null) { string dir = projectVM.ProjectFolderPath; string prjName = projectVM.ProjectName; // Unselect the project VM if (_SelectedProjectVM == projectVM) { _pm.SelectedProject.Dispose(); SelectedProjectVM.IsSelected = false; SelectedProjectVM.Dispose(); SelectedProjectVM = null; } // Delete the project from the database _pm.RemoveProject(projectVM.ProjectName); System.Windows.Application.Current.Dispatcher.BeginInvoke(new System.Action(() => { // Dispose of the VM projectVM.Dispose(); var tempPrjList = new ReactiveList <ProjectListItemViewModel>(ProjectList); tempPrjList.Remove(projectVM); ProjectList = tempPrjList; this.NotifyOfPropertyChange(() => this.ProjectList); // Delete the selected project from the list //_ProjectList.Remove(projectVM); })); // Prompt to delete the folder content also this.PromptToPermenatelyDelete(dir, prjName); } }