//导出所有父节点 private static void ExportAllParents2CSV(StreamWriter mysw, StringBuilder allLines, MyTreeNode node) { WindowView.notify.SetStatusMessage("正在导出该节点的所有父节点。。。"); List <MyTreeNode> parentNodes = MyTrees.FindToRootNodeList(node.TopId); parentNodes.Reverse(); allRow += parentNodes.Count; for (int i = 0; i < parentNodes.Count; i++) { MyTreeNode parentNode = parentNodes[i]; allLines.Clear(); allLines.Append(parentNode.SysId); allLines.Append(","); allLines.Append(parentNode.TopId); allLines.Append(","); allLines.Append(parentNode.Name); allLines.Append(","); allLines.Append(parentNode.Level); allLines.Append(","); allLines.Append(parentNode.ChildrenLevels); allLines.Append(","); allLines.Append(parentNode.ChildrenNodes.Count); allLines.Append(","); allLines.Append(parentNode.ChildrenCount); foreach (string otherProp in parentNode.OtherProps) { allLines.Append(","); allLines.Append(otherProp); } mysw.WriteLine(allLines.ToString()); } }
//显示到顶级根节点 private void btnUpRootNode_Click(object sender, RoutedEventArgs e) { TreeViewItem oldRootItem = memberTreeView.Items[0] as TreeViewItem; MyTreeNode oldRootNode = oldRootItem.Tag as MyTreeNode; MyTreeNode newRootNode = MyTrees.GetNodeBySysId(oldRootNode.TopId); if (isRingClose(newRootNode.SysId)) { return; } List <MyTreeNode> parentNodes = MyTrees.FindToRootNodeList(oldRootNode.TopId); if (parentNodes.Count > 0) { //先移除旧的根节点 memberTreeView.Items.Remove(oldRootItem); for (int i = 0; i < parentNodes.Count; i++) { MyTreeNode node = parentNodes[i]; //添加新的根节点 TreeViewItem newRootItem = NewTreeViewItem(parentNodes[i]); newRootItem.IsExpanded = true; newRootItem.Items.Add(oldRootItem); oldRootItem = newRootItem; } } memberTreeView.Items.Add(oldRootItem); btnUpLevelNode.IsEnabled = false; btnUpRootNode.IsEnabled = false; }