简体   繁体   中英

Populating Treeview using Linq

I'm playing with Linq-SQL and would like to display my data in a TreeView on a form. I'm also using .net 3.5, if that matters.

Now, my question - is there a better way to populate this treeview? The way I'm doing it now is like this (psuedo):

for each order
{
  OrderNode = new TreeViewNode

  for each product in order
  {
     ProductNode = new TreeViewNode
     OrderNode.Add(ProductNode)
  }

  OrdersTreeView.Add(OrderNode)
}

Thanks in advance!

Here is a rough way to create the nodes given recursion (in lovely mashed up half-psuedo)

private void CreateNodeAndInvestigateChildrenOfNode(HierarchyData data)
    {
        //does this node have children???
        if (data.HasChildren)
        {
            //get children
            IEnumerable<ChildRecord> childUsers = GetChildRecordsForData(data);
            foreach (child in childUsers)
            {
      HierarchyData newNode = new HierarchyData ();
                newNode.ParentNode = data;
                newNode.ThisData = child;
                data.ChildNodes.Add(newNode);

                CreateNodeAndInvestigateChildrenOfNode(newNode);
            }
        }
    }

Find your root node and call the method.

If you use the interfaces IHierarchyData and IHierarchicalEnumerable and build the nodes with classes implementing these the treenode will accept this as a direct data source.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM