// // Given a parent TreeViewItem, FTPFolder, and an expand flag, draws the children folders // in your directory structure // private void DrawChildTreeItems(TreeViewItem parentTree, FTPFolder folder, bool expand) { List<string> childPaths = GetDirectories(folder.GetPath()); List<TreeViewItem> treeViewItemList = new List<TreeViewItem>(); foreach (string t in childPaths) { if (folderNameToTreeItem.ContainsKey(t)) { continue; } else { TreeViewItem tv = new TreeViewItem(); FTPFolder newFolder = new FTPFolder(t, SafeFolderName(t)); DockPanel dock = new DockPanel(); dock.MouseUp += new MouseButtonEventHandler(TreeViewMouseDown); TextBlock textContent = new TextBlock(); textContent.Text = newFolder.GetName(); dock.Children.Add(GetImage(false)); dock.Children.Add(textContent); dockPanelContent.Add(dock, newFolder.GetPath()); treeViewItemList.Add(tv); tv.Header = dock; parentTree.Items.Add(tv); folderNameToTreeItem.Add(t, tv); treeItemToFolderName.Add(tv, t); if (expand) { parentTree.IsExpanded = true; } else { parentTree.IsExpanded = false; } } } }