c# - C# 列出组和子组到 TreeView
问题描述
我有一个自定义项目:
List<Class_Items_Data> All_Items_List = new List<Class_Items_Data>();
public class Class_Items_Data
{
public string item_category { get; set; }
public string item_sub_category { get; set; }
public string item_name { get; set; }
}
例如 :
item_category = "Food" , item_sub_category = "Main Dish" , item_name = "A" };
item_category = "Beverage", item_sub_category = "Hot Drink" , item_name = "B" };
item_category = "Food" , item_sub_category = "Soup" , item_name = "C" };
item_category = "Beverage", item_sub_category = "Cold Drink", item_name = "D" }
我想将它们放在 Treeview 中,以便向我显示以下结果:
编辑#
我正在使用 Winform
到目前为止我已经尝试过了(显示正确值的消息框)
var ItemsGroups = All_Items_List
.GroupBy(x => new { Group = x.item_category_group, Category = x.item_category})
.GroupBy(x => new { Group = x.Key.Group }).OrderBy(x => x.Key.Group);
foreach (var Group in ItemsGroups)
{
MessageBox.Show("Group : " + Group.Key.Group);
foreach (var Category in Group)
{
MessageBox.Show("SubCategory : " + Category.Key.Category);
foreach (var Item in Category)
{
MessageBox.Show("Item : " + Item.item_name_original);
}
}
}
解决方案
将循环更改为
foreach (var Group in ItemsGroups) {
TreeNode groupNode = treeView1.Nodes.Add(Group.Key.Group);
foreach (var Category in Group) {
TreeNode categoryNode = groupNode.Nodes.Add(Category.Key.Category);
foreach (var Item in Category) {
categoryNode.Nodes.Add(Item.item_name_original);
}
}
}
推荐阅读
- r - R:`f(x) 中的错误:尝试使用函数列作为 tibble 中的参数时找不到函数“f”`
- java - 如何获取 ImageIcon 路径 String Java Jtable
- vba - Microsoft Access:如何为事件过程选择名称?
- concourse - 在建立与 Concourse API 的连接时出现 401 状态错误
- elasticsearch - 如何启用对 Elastic APM 服务器的远程访问/请求?
- .htaccess - 提供 Pregzipped 文件(如果存在)
- c# - MS Access 从查询 c# 创建表
- javascript - 监视在测试执行期间动态创建的对象的方法
- ios - 单元本地化
- angular - 在源参数Angular 8 Pipe上始终未定义嵌套的ngFor中的过滤器