public void UpdateSubItems() { Items.Clear(); foreach (RDAFolder rdaFolder in Enumerable.OrderBy(Folder.Folders, f => f.Name)) { RDAFolderTreeViewItem folderTreeViewItem = new RDAFolderTreeViewItem(); folderTreeViewItem.Folder = rdaFolder; folderTreeViewItem.Header = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/folder.png", rdaFolder.Name); Items.Add(folderTreeViewItem); if ((TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).SelectedItems.Contains(this)) { (TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).SelectItem(folderTreeViewItem); (TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).UpdateSelectedItems(); } } foreach (RDAFile file in Enumerable.OrderBy(Folder.Files, f => f.FileName)) { RDAFileTreeViewItem fileTreeViewItem = RDAFileExtension.ToTreeViewItem(file); fileTreeViewItem.SelectOnRightClick = true; Items.Add(fileTreeViewItem); if ((TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).SelectedItems.Contains(this)) { (TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).SelectItem(fileTreeViewItem); (TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).UpdateSelectedItems(); } } AlreadyExpanded = true; IsExpanded = true; }
private void _RebuildTreeView(BackgroundWorker wrk) { DispatcherExtension.Dispatch(System.Windows.Application.Current, () => { treeView.Items.Clear(); RDAFolder root = CurrentReader.rdaFolder; foreach (RDAFolder folder in root.Folders) { treeView.Items.Add(new RDAFolderTreeViewItem() { Folder = folder, Header = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/folder.png", folder.Name) }); } foreach (RDAFile file in root.Files) { treeView.Items.Add(Misc.RDAFileExtension.ToTreeViewItem(file)); } foreach (RDASkippedDataSection skippedBlock in CurrentReader.SkippedDataSections) { string title = skippedBlock.blockInfo.fileCount + " encrypted files"; treeView.Items.Add(new RDASkippedDataSectionTreeViewItem() { Section = skippedBlock, Header = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/error.png", title) }); } }); }
public static RDAFileTreeViewItem ToTreeViewItem(this RDAFile file) { string str = Path.GetExtension(file.FileName).ToLower(); string file1 = "pack://application:,,,/Images/Icons/page_white.png"; if (str == ".xml") { file1 = "pack://application:,,,/Images/Icons/page_white_code.png"; } else if (str == ".txt" || str == ".ini" || str == ".cfg") { file1 = "pack://application:,,,/Images/Icons/page_white_text.png"; } else if (str == ".jpg" || str == ".bmp" || (str == ".png" || str == ".dds")) { file1 = "pack://application:,,,/Images/Icons/page_white_picture.png"; } else if (str == ".mp3" || str == ".wav" || str == ".wma") { file1 = "pack://application:,,,/Images/Icons/sound.png"; } RDAFileTreeViewItem fileTreeViewItem = new RDAFileTreeViewItem(); fileTreeViewItem.Header = ControlExtension.BuildImageTextblock(file1, Path.GetFileName(file.FileName)); fileTreeViewItem.SemanticValue = "<File>"; fileTreeViewItem.File = file; return(fileTreeViewItem); }
private static ModifiedTreeViewItem NavigateTo(ModifiedTreeViewItem view, string path, bool autocreate) { path = path.Replace("\\", "/"); List <string> list = Enumerable.ToList(path.Split('/')); string message = list[0]; foreach (ModifiedTreeViewItem view1 in view.Items) { if (view1.SemanticValue == message) { if (list.Count == 1) { return(view1); } list.RemoveAt(0); return(NavigateTo(view1, StringExtension.PutTogether(list, '/'), autocreate)); } } if (!autocreate) { return(null); } ModifiedTreeViewItem view2 = new ModifiedTreeViewItem(); view2.Header = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/folder.png", message); view2.SemanticValue = message; view.Items.Add(view2); if (list.Count == 1) { return(view2); } list.RemoveAt(0); return(NavigateTo(view2, StringExtension.PutTogether(list, '/'), autocreate)); }