Esempio n. 1
0
        void item_Expanded(object sender, RoutedEventArgs e)
        {
            TreeViewItem item = e.Source as TreeViewItem;

            if (item.HasItems && (item.Items[0] as TreeViewItem).Header.ToString() == "更多")
            {
                //先移除为使该节点具有折叠的"+"而添加的虚假的子节点
                item.Items.Clear();

                MyTreeNode        node          = item.Tag as MyTreeNode;
                List <MyTreeNode> childrenNodes = MyTrees.GetNodes_ByTopId(node.SysId);


                foreach (MyTreeNode subNode in childrenNodes)
                {
                    TreeViewItem subItem = NewTreeViewItem(subNode);
                    item.Items.Add(subItem);

                    //如果子节点还有孙子节点,则添加一个虚假的孙节点,使该子节点具有折叠的"+"
                    if (subNode.ChildrenCount > 0)
                    {
                        subItem.Items.Add(NewTreeViewItem(null));
                    }

                    WindowView.notify.SetStatusMessage("正在展开节点" + subItem.Header);
                }
            }
        }
Esempio n. 2
0
        //显示上一级节点
        private void btnUpLevelNode_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;
            }

            //先移除旧的根节点
            memberTreeView.Items.Remove(oldRootItem);

            //添加新的根节点
            TreeViewItem newRootItem = NewTreeViewItem(newRootNode);

            memberTreeView.Items.Add(newRootItem);
            newRootItem.IsExpanded = true;

            //新的根节点添加子节点
            List <MyTreeNode> childrenNodes = MyTrees.GetNodes_ByTopId(newRootNode.SysId);
            bool hasNotAdded = true;

            foreach (MyTreeNode subNode in childrenNodes)
            {
                if (hasNotAdded)
                {
                    if (oldRootNode.SysId == subNode.SysId)
                    {
                        newRootItem.Items.Add(oldRootItem);
                        hasNotAdded = false;
                        continue;
                    }
                }
                TreeViewItem subItem = NewTreeViewItem(subNode);
                newRootItem.Items.Add(subItem);

                //如果子节点还有孙子节点,则添加一个虚假的孙节点,使该子节点具有折叠的"+"
                if (subNode.ChildrenCount > 0)
                {
                    subItem.Items.Add(NewTreeViewItem(null));
                }
            }

            //判断当前根节点是否存在父节点
            if (MyTrees.GetNodeBySysId(newRootNode.TopId) != null)
            {
                btnUpLevelNode.IsEnabled = true;
                btnUpRootNode.IsEnabled  = true;
            }
            else
            {
                btnUpLevelNode.IsEnabled = false;
                btnUpRootNode.IsEnabled  = false;
            }
        }
Esempio n. 3
0
        void item_Expanded(TreeNode tn)
        {
            MyTreeNode node = tn.Tag as MyTreeNode;

            if (node != null)
            {
                List <MyTreeNode> childrenNodes = MyTrees.GetNodes_ByTopId(node.SysId);;
                foreach (MyTreeNode subNode in childrenNodes)
                {
                    Button   grandson = NewTreeViewItem(subNode);
                    TreeNode newNode  = memberTreeView.AddNode(grandson, tn);
                    newNode.Tag       = subNode;
                    newNode.Collapsed = true;
                }
            }
        }
Esempio n. 4
0
        void item_Expanded(object sender, RoutedEventArgs e)
        {
            TreeViewItem item = e.Source as TreeViewItem;
            //foreach (TreeViewItem subItem in item.Items)
            //{
            MyTreeNode node = item.Tag as MyTreeNode;

            if (node != null)
            {
                List <MyTreeNode> childrenNodes = MyTrees.GetNodes_ByTopId(node.SysId);
                foreach (MyTreeNode subNode in childrenNodes)
                {
                    TreeViewItem grandson = NewTreeViewItem(subNode);
                    item.Items.Add(grandson);
                }
            }
            //}
        }
Esempio n. 5
0
        private static void Export2CSVImp(StreamWriter mysw, StringBuilder allLines, MyTreeNode node, bool recu)
        {
            if (isRingClose(node.SysId))
            {
                return;
            }

            allLines.Clear();
            allLines.Append(node.SysId);
            allLines.Append(",");
            allLines.Append(node.TopId);
            allLines.Append(",");
            allLines.Append(node.Name);
            allLines.Append(",");
            allLines.Append(node.Level);
            allLines.Append(",");
            allLines.Append(node.ChildrenLevels);
            allLines.Append(",");
            allLines.Append(node.ChildrenNodes.Count);
            allLines.Append(",");
            allLines.Append(node.ChildrenCount);
            foreach (string otherProp in node.OtherProps)
            {
                allLines.Append(",");
                allLines.Append(otherProp);
            }

            mysw.WriteLine(allLines.ToString());
            row++;
            if (row % 100 == 0)
            {
                WindowView.notify.SetProcessBarValue((int)(100.0 * row / allRow));
                WindowView.notify.SetStatusMessage("正在导出第" + row + "个节点(总共" + allRow + "个节点)");
            }

            if (recu)
            {
                List <MyTreeNode> childrenNodes = MyTrees.GetNodes_ByTopId(node.SysId);
                foreach (MyTreeNode subNode in childrenNodes)
                {
                    Export2CSVImp(mysw, allLines, subNode, recu);
                }
            }
        }
Esempio n. 6
0
        private void InitMyTree()
        {
            //加载正确的节点
            List <MyTreeNode> roots = new List <MyTreeNode>();

//            if (MyTreeNode.AllNodes.ContainsKey(1))
//            {
//                roots.AddRange(MyTreeNode.AllNodes[1].Values);
//            }
            foreach (MyTreeNode node in roots)
            {
                TreeViewItem rootItem = NewTreeViewItem(node);
                rootItem.Expanded  += item_Expanded;
                rootItem.Collapsed += item_Collapsed;

                memberTreeView.Items.Add(rootItem);
                List <MyTreeNode> childrenNodes = MyTrees.GetNodes_ByTopId(node.SysId);
                foreach (MyTreeNode subNode in childrenNodes)
                {
                    TreeViewItem subItem = NewTreeViewItem(subNode);
                    rootItem.Items.Add(subItem);
                }
            }

            //将错误节点也加上
//            foreach (string item in MyTreeNode.ErrNodes.Keys)
//            {
//                TreeViewItem errRootItem = new TreeViewItem();
//                errRootItem.Header = item;
//                errRootItem.ToolTip = "下线人数:" + MyTreeNode.ErrNodes[item].Count;
//                memberTreeView.Items.Add(errRootItem);
//                foreach (MyTreeNode errNode in MyTreeNode.ErrNodes[item])
//                {
//                    TreeViewItem errItem = new TreeViewItem();
//                    errItem.Header = errNode.RealName;
//                    errItem.ToolTip = "Id:" + errNode.SysId + ",级别:" + errNode.Layer + ",出错行数:" + errNode.DescendantCount;
//                    errRootItem.Items.Add(errItem);
//                }
//            }
        }