Ejemplo n.º 1
0
        private bool AddNode(TreeViewMItem root, string NodeName = "")
        {
            if (StoreTree == null)
            {
                MessageBox.Show("请先创建树");
                return(false);
            }

            TreeViewMItem node = null;

            if (root != null)
            {
                node = new TreeViewMItem(NodeName, root.Path);
                root.Items.Add(node);
                root.IsExpanded = true;         // 展开 root 节点
            }
            else
            {
                node = new TreeViewMItem("Root", "");
                tree.Items.Add(node);
            }
            textNodeDB.AddNewNode(node);    /// 新节点写入数据库并获取 ID
            tree.UpdateLayout();
            node.Focus();
            return(true);
        }
Ejemplo n.º 2
0
        // 节点升级
        private bool UpgradeNode(TreeViewMItem node)
        {
            if (node == null)
            {
                return(false);
            }

            TreeViewMItem parent = node.Parent as TreeViewMItem;

            if (parent == null)
            {
                return(false);
            }

            TreeViewMItem grandPa = parent.Parent as TreeViewMItem;

            parent.Items.Remove(node);

            if (grandPa != null)
            {
                grandPa.Items.Add(node);
            }
            else
            {
                tree.Items.Add(node);
            }
            node.Focus();
            return(true);
        }
Ejemplo n.º 3
0
        // 带有警告提示框
        private bool RemoveNode(TreeViewMItem node)
        {
            if (StoreTree == null)
            {
                MessageBox.Show("请先创建树");
                return(false);
            }

            if (node == null)
            {
                return(false);
            }
            string s = "确定删除节点 “{0}” 及其所有子节点?";

            s = String.Format(s, node.Header);
            if (MessageBox.Show(s, "警告", MessageBoxButton.YesNo, MessageBoxImage.Information) != MessageBoxResult.Yes)
            {
                return(false);
            }
            _removeNode(node);
            return(true);
        }
Ejemplo n.º 4
0
        private void _removeNode(TreeViewMItem node)
        {
            if (node == null)
            {
                return;
            }
            TreeViewMItem parent = node.Parent as TreeViewMItem;

            textNodeDB.DeleteNode(node.ID);
            for (int i = node.Items.Count - 1; i >= 0; i--)
            {
                _removeNode(node.Items[i] as TreeViewMItem);
            }
            if (parent == null)
            {
                tree.Items.Remove(node);
                tree.UpdateLayout();
            }
            else
            {
                parent.Items.Remove(node);
                parent.UpdateLayout();
            }
        }