从TreeView中创建一个链式列表

时间:2017-02-14 20:55:38

标签: c# winforms linked-list treeview

我有TreeView在多个级别上由多个Nodes组成 根据级别,节点包含它们所代表的对象的Tag

node_lvl_1.1:
|    node_lvl_2.1:
|    |    node_lvl_3.1
|    |    node_lvl_3.2
|    node_lvl_2.2:
|    |    node_lvl_3.1
|    |    node_lvl_3.2
... 

(现实当然更复杂)

我试图为每个对象设置ID(就像.之后)。 我也试图创建某种链式列表 - 如: Obj lvl1包含所有Obj lvl2的列表,其中还包含所有Obj lvl3的列表...

我已经使用这两个函数为每个节点提供了与之对应的对象。

    public static void Define(TreeNode mainNode)
    {
        foreach (TreeNode subNode in mainNode.Nodes)
        {
            if(subNode.Nodes.Count != 0)
            {
                Define(subNode);
            }
            else
            {
                subNode.ToolTipText = "Local";
            }
            DefineHierarchy(subNode);
        }
    }

    public static void DefineHierarchy(TreeNode tn)
    {
        switch (tn.ToolTipText)
        {
            case "0":
                tn.Tag = new Entite(tn.Text);
                break;
            case "1":
                tn.Tag = new Secteur(tn.Text);
                break;
            case "2":
                tn.Tag = new SousSecteur(tn.Text);
                break;
            case "3":
                tn.Tag = new Zone(tn.Text);
                break;
            case "Local":
                tn.Tag = new Local(tn.Text);
                break;
            default:
                tn.Tag = "between Zone and Local";
                break;
        }
        tn.ToolTipText = tn.Tag.ToString();
    }

我希望我足够清楚:/并感谢您的帮助!

0 个答案:

没有答案