如何从列表中添加树视图中的节点
本文关键字:视图 节点 添加 列表 | 更新日期: 2023-09-27 18:27:34
我有以下代码,需要在其中创建要与列表绑定的节点和子节点。我正在将其转换为数组,然后我试图添加,但我未能做到这一点。我应该怎么做?以下是我的代码:
foreach (var item in ProductCategory)
{
TreeNode tr = new TreeNode(item.CatName);
List<dataObject> lst = objFreecusatomization.GetAllCustomItems(CategoryType.Dressing, item.CategoryID);
TreeNode[] sumItemList =new TreeNode[lst.Count];
foreach (var subItem in lst)
{
sumItemList[sumItemList] = new TreeNode { Name = subItem.Name, Text = subItem.Name, Checked = subItem.Selected };
}
treeCustomItem.Nodes.Add(item.CatName, sumItemList);
}
我还需要为添加的项目分配键值和名称。通过LinQ或lambda表达式。最好的方法是什么?
这将失败:sumItemList[sumItemList]=new TreeNode。。。数组的索引不能是数组本身。
由于您没有索引器(因为foreach),我建议您使用List,如下所示:
foreach (var item in ProductCategory)
{
TreeNode treeCustomItem = new TreeNode(item.CatName);
List<dataObject> lst = objFreecusatomization.GetAllCustomItems(CategoryType.Dressing, item.CategoryID);
List<TreeNode> sumItemList = new List<TreeNode>();
foreach (var subItem in lst)
{
sumItemList.Add(new TreeNode { ... });
}
treeCustomItem.Nodes.AddRange(sumItemList.ToArray());
}
但是,由于您已经在对提取的子项进行迭代,因此也可以直接添加子项,而不是使用数组/列表。你的内侧前臂会变成:
foreach (var subItem in lst)
{
treeCustomItem.Nodes.Add(new TreeNode { ... });
}