我正在使用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)
}
提前致谢!
答案 0 :(得分:2)
这是一个粗略的方法来创建给定递归的节点(在可爱的混合半假设中)
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将接受此作为直接数据源。