WPF 递归数据绑定到ComboBox上
我的数据库设计是这样的。
代码是这么写的。
public TypeAdd() { InitializeComponent(); ObservableCollection<XModel.STORE_TYPE> list = XDAL.STORE_TYPE_DAL.GetData(); this.fl_state.DisplayMemberPath = "Stype_name"; this.fl_state.SelectedValuePath = "Stype_code"; ObservableCollection<XModel.STORE_TYPE> listx = new ObservableCollection<STORE_TYPE>(list.Where(item => item.Parent_stype_code == "")); foreach (var item in listx) { treelist.Add(item); Get(item.Stype_code, list); } foreach (var item in treelist) { int limitLower = (Convert.ToInt32(item.Stype_level.Length) / 8); for (int i = 0; i < limitLower; i++) { if (limitLower == 1) { item.Stype_name += "=>"; } else { item.Stype_name = item.Stype_name.Insert(0, " "); } } } treelist.Insert(0, new XModel.STORE_TYPE() { Stype_name = "顶级分类", Stype_code = "" }); this.fl_state.ItemsSource = treelist; this.fl_state.SelectedIndex = 0; } public void Get(string parendId,ObservableCollection<XModel.STORE_TYPE> cache) { ObservableCollection<XModel.STORE_TYPE> list = new ObservableCollection<STORE_TYPE>(cache.Where(u=>u.Parent_stype_code==parendId)); if (list.Count==0) { return; } foreach (var item in list) { treelist.Add(item); Get(item.Stype_code, cache); } } ObservableCollection<XModel.STORE_TYPE> treelist = new ObservableCollection<STORE_TYPE>();
效果是这样的。
分类:
.NET-WPF
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2018-08-23 说一说MVC的控制器(二)
2018-08-23 程序员如何面试才能拿到offer