private void RemoveFromTreeview(ItemLink item) { var parent = item.GetParent(PackageFiles); if (MainExePath != null && item.SourceFilepath != null && MainExePath.ToLower() == item.SourceFilepath.ToLower()) { MainExePath = string.Empty; RefreshPackageVersion(); } // // Element is in the treeview root. if (parent == null) { if (_packageFiles.Contains(item)) { _packageFiles.Remove(item); } } else { //Remove it from children list parent.Children.Remove(item); } }
private void MoveItem(ItemLink draggedItem, ItemLink targetItem) { // // Remove from current location RemoveFromTreeview(draggedItem); // // Add to target position ItemLink parent = targetItem; if (targetItem == null) { //Porto su root _packageFiles.Add(draggedItem); } else { if (!targetItem.IsDirectory) { parent = targetItem.GetParent(PackageFiles); } if (parent != null) { //Insert into treeview root parent.Children.Add(draggedItem); } else { //Insert into treeview root _packageFiles.Add(draggedItem); } } NotifyOfPropertyChange(() => PackageFiles); }
private void AddFile(string filePath, ItemLink targetItem) { var isDir = false; FileAttributes fa = File.GetAttributes(filePath); if (fa != null && fa.HasFlag(FileAttributes.Directory)) { isDir = true; } RemoveItemBySourceFilepath(filePath); var node = new ItemLink() { SourceFilepath = filePath, IsDirectory = isDir }; ItemLink parent = targetItem; if (targetItem == null) { //Porto su root _packageFiles.Add(node); } else { if (!targetItem.IsDirectory) { parent = targetItem.GetParent(PackageFiles); } if (parent != null) { //Insert into treeview root parent.Children.Add(node); } else { //Insert into treeview root _packageFiles.Add(node); } } if (isDir) { var dir = new DirectoryInfo(filePath); var files = dir.GetFiles("*.*", SearchOption.TopDirectoryOnly); var subDirectory = dir.GetDirectories("*.*", SearchOption.TopDirectoryOnly); foreach (var f in files) { AddFile(f.FullName, node); } foreach (var f in subDirectory) { AddFile(f.FullName, node); } } else { // I keep the exe filepath, i'll read the version from this file. // var ext = Path.GetExtension(filePath).ToLower(); if (ext == ".exe") { MainExePath = filePath; RefreshPackageVersion(); } } }