【问题标题】:Populating Treeview using Linq使用 Linq 填充树视图
【发布时间】:2009-06-04 04:25:06
【问题描述】:
我正在使用 Linq-SQL,并希望在表单上的 TreeView 中显示我的数据。如果这很重要,我也在使用 .net 3.5。
现在,我的问题 - 有没有更好的方法来填充这个树视图?我现在的做法是这样的(伪):
for each order
{
OrderNode = new TreeViewNode
for each product in order
{
ProductNode = new TreeViewNode
OrderNode.Add(ProductNode)
}
OrdersTreeView.Add(OrderNode)
}
提前致谢!
【问题讨论】:
标签:
.net
sql
winforms
linq
treeview
【解决方案1】:
这是一个粗略的方法来创建给定递归的节点(可爱的混搭半伪)
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);
}
}
}
找到你的根节点并调用方法。
如果您使用接口 IHierarchyData 和 IHierarchicalEnumerable 并使用实现这些接口的类构建节点,则 treenode 将接受它作为直接数据源。