【问题标题】:Display a list of nodes in a TreeView在 TreeView 中显示节点列表
【发布时间】:2009-05-05 00:38:29
【问题描述】:

我有一个指定节点级别的节点对象

public class Node
{
    public int Level { get; set; }
}

我想使用一个有序的节点列表来构造一个树视图

var nodes = new[]
{
    new Node(){Level = 0},
        new Node(){Level = 1},
        new Node(){Level = 1},
        new Node(){Level = 1},
            new Node(){Level = 2},
        new Node(){Level = 1},
            new Node(){Level = 2},
            new Node(){Level = 2},
                new Node(){Level = 3},
};

最有效的方法是什么。

谢谢

罗汉

【问题讨论】:

    标签: c# treeview tree


    【解决方案1】:

    从 Boo 开始,您会希望在迈向更高级别时保留一堆节点。如果当前节点的级别更高,则将前一个节点压入堆栈并将其用作父节点。如果级别低于前一个节点,则将 n 个节点从堆栈中弹出(n = previous_level - current_level)并使用新的堆栈顶部作为父节点。

    【讨论】:

      【解决方案2】:

      遍历您的节点列表。从索引 0 开始,记录该节点的级别。在所有后续索引中,都会根据最后记录的级别检查级别。如果更高,则将其添加为最后添加的节点的子节点。如果较低,好吧..如果小写问题..找到适当的节点将其添加到。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多