日期:2014-05-17  浏览次数:20982 次

如何绑定到TreeView?
本帖最后由 davidtsui 于 2013-03-07 09:43:08 编辑


public class Item
{
    public int ID {get;set;} //菜单项唯一标号
    public int? ParentID {get;set;} // 如果ID为null,则表示是顶级项,否则,则是父级的 ID
     public string Text{get;set;} // 菜单项的文本
}

List<Item> items = db.GetItems();//从数据源获取的





如上,求一段代码,递归什么的,把 items 绑定到一个 TreeView。

------解决方案--------------------
http://zhidao.baidu.com/question/411753403.html

建议不要每次都去计算,这样的这个TreeView如果用的地方较多 会很消耗性能。这种固定结构可以生产根据数据生成固定的XML 在读取到程序中缓存起来,每次读缓存。减少每次计算
------解决方案--------------------
winform的treeview?

 
private void InitTreeView(List<Item> items, int? parentID, TreeNodeCollection Nodes)
        {
            var itemChilds = items.Where(x => x.ParentID == parentID);
            foreach (Item child in itemChilds)
            {
                TreeNode node = new TreeNode(child.Text);
                node.Tag = child.ID; //标记ID
                Nodes.Add(node);

                InitTreeView(items, child.ID, node.Nodes);
            }
        }

    List<Item> items = db.GetItems();//从数据源获取的
    InitTreeView(items, null, treeview1.Nodes); //调用