/* private ListViewItem AddNewItemInView(FrameworkElement item, object dataItem) { //LvProjects.Items var lvi = new ListViewItem { Content = item, Tag = dataItem }; _listViewItems.Add(lvi); return lvi; } */ private void ShowCollection() { _collectionItems.Clear(); // LvProjects.Items.Clear(); foreach (var solution in _projectCollection.Solution) { var item = new CollectionItem(solution, _projectCollection.Tags); _collectionItems.Add(item); //var lvi = AddNewItemInView(item, solution); item.Remove = () => { _projectCollection.Solution.Remove(solution); _collectionItems.Remove(item);//lvi //LvProjects.Items.Remove(item); }; _existProjects.Add(solution.FullPath.ToLower()); } foreach (var project in _projectCollection.Project) { var item = new CollectionItem(project, _projectCollection.Tags); _collectionItems.Add(item); // var lvi = AddNewItemInView(item, project); item.Remove = () => { _projectCollection.Project.Remove(project); _collectionItems.Remove(item);//lvi //LvProjects.Items.Remove(item); }; _existProjects.Add(project.FullPath.ToLower()); } }
private void RemoveItem(CollectionItem ci, bool refresh = true)//ListViewItem { _collectionItems.Remove(ci); // LvProjects.Items.Remove(lvi); var project = ci.Project; if (project != null) { var solution = project as SolutionBase; if (solution != null) _projectCollection.Solution.Remove(solution); else _projectCollection.Project.Remove(project); _existProjects.Remove(project.FullPath.ToLower()); // Удаляем из дерева var folder = ci.Project.Folder; if (folder.SubDirs == null || folder.SubDirs.Count == 0) { folder.Projects.Remove(ci.Project); // если это последний проект в паке, то удаляем её и все пустые вышестоящие do { if (folder.Parent != null && (folder.Projects == null || folder.Projects.Count == 0) && (folder.SubDirs == null || folder.SubDirs.Count == 0)) { folder.Parent.SubDirs.Remove(folder); } folder = folder.Parent; } while (folder != null); RefreshFolders(); } } if(refresh) RefreshView(); }
private void OnFileDrop(object sender, RoutedEventArgs e) { var dfc = (DropFileControl) sender; var fullProjectPath = dfc.DroppedFile; var ext = Path.GetExtension(fullProjectPath); var dirName = Path.GetDirectoryName(fullProjectPath); var dirInfo = new DirectoryInfo(dirName); var name = Path.GetFileNameWithoutExtension(fullProjectPath); ProjectBase newProject = null; if (ext == SolutionFileExt) { newProject = new SolutionBase(); _projectCollection.Solution.Add((SolutionBase)newProject); } else if (ext == ProjectFileExt) { newProject = new ProjectBase(); _projectCollection.Project.Add(newProject); } if (newProject == null) return; newProject.CategoryId = -1; newProject.Name = name; newProject.FullPath = fullProjectPath; ScanFolder(newProject, dirInfo); var item = new CollectionItem(newProject, _projectCollection.Tags); _collectionItems.Add(item); _existProjects.Add(newProject.FullPath.ToLower()); CreateDirInTree(_folders, newProject); RefreshView(); RefreshFolders(); }