簡體   English   中英

如何在C#中創建動態樹視圖?

[英]How can I make a dynamic treeview in c#?

我正在使用一個系統,並且有一個樹形視圖,其中必須包含對象的項目結構。 該結構如下所示:

Project
 |- Module1
 |    |- Xml1
 |    |    |- Element
 |    |    |- Element
 |    |    |    |- Element
 |    |    |    |- Element
 |    |    |    |    |- Element
 |    |    |    |
 |    |    |    |- Element
 |    |    |
 |    |    |- Element
 |    |
 |    |- Xml2
 |         |- Element
 |
 |- Module2
      |- Xml1
           |- Element

等等..

現在,當我想將Xml文件添加到模塊中時,這很容易,因為我知道它上面有2個節點。 (項目,模塊)在C#中:

public void AddXmlToTree(string xmlFile)
{
     projectTreeView.Nodes[0].LastNode.Nodes.Add(xmlFile);
}

注意:我使用LastNode是因為我按樹的順序添加它們。

現在的問題是:每個元素都可以有另一個元素,因此基本上是無限的。 我不能僅僅制作一百萬種這樣的方法。 我可能需要一些其他遞歸方法。

我想我需要獲取最后添加的Element對象的Node,以便可以向其添加下一個Element節點,但我不知道如何獲取它。

希望你能理解我的問題。

完全未經測試,但可以用作指導:

private void AddNodesRecursive(TreeNode parent, object childData)
{
    string strChildNode = string.Empty;
    XmlElement childDoc = null;
    if (parent != null)
    {
        if ((childData as string) != null)
        {
            parent.ChildNodes.Add(new TreeNode((childData as string)));
            return;
        }
        childDoc = childData as XmlElement;
        if (childDoc != null)
        {
            TreeNode subParent = new TreeNode(childDoc.InnerText);
            parent.ChildNodes.Add(subParent);
            foreach (XmlElement grandChild in childDoc.ChildNodes)
                AddNodesRecursive(subParent, grandChild);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM