اگر کلاس رو self reference بنویسی به صورت زیر
public class Vendor
{
public int Id { get; set; }
public string Name { get; set; }
public Vendor Parent { get; set; }
}
به صورت زیر میتونی پر کنی:
private void AddNodes(List<Vendor> sourceVendors, Vendor parent, TreeNodeCollection tnCollection)
{
var childs =
from v in sourceVendors
where v.Parent == parent
select v;
foreach (Vendor child in childs)
{
TreeNode tn = tnCollection.Add(child.Id.ToString(), child.Name);
AddNodes(sourceVendors, child, tn.Nodes);
}
}
به صورت زیر هم فراخوانی کنید:
List<Vendor> allVendors = db.Vendors.ToList();
AddNodes(allVendors , null , treeView1.Nodes);