展开全部
路径描述分割开来,然后递归的group,我之前做过一个分析文件目录的跟这个差不多,这个用linq+一个辅助生成TreeNode的函数可以一句话写出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个都明显告诉你怎么排列了啊
先把根节点加进去
然后把下级节点list保存
遍历list的项,遍历同时对控件进行数据绑定
private void BindTree(IList<Sysdepartment> categorys, TreeViewNodeCollection treeViewNodeCollection, long parentID)
{
//添加一个根结点
if (parentID == 0)
{
var parentNote = new TreeViewNode();
parentNote.Name = "0";
parentNote.Text = "根节点";
parentNote.Expanded = true;
treeViewNodeCollection.Add(parentNote);
treeViewNodeCollection = parentNote.Nodes;
}
var children = categorys.Where<Sysdepartment>(o => o.Parentid == parentID);
//绑定下级内容
foreach (var item in children)
{
var note = new TreeViewNode();
note.Name = item.Sysdepartmentid.ToString("f0");
note.Text = item.Departname;
note.Enabled = true;
note.Expanded = false;
BindTree(categorys, note.Nodes, item.Sysdepartmentid);
treeViewNodeCollection.Add(note);
}
}
先把根节点加进去
然后把下级节点list保存
遍历list的项,遍历同时对控件进行数据绑定
private void BindTree(IList<Sysdepartment> categorys, TreeViewNodeCollection treeViewNodeCollection, long parentID)
{
//添加一个根结点
if (parentID == 0)
{
var parentNote = new TreeViewNode();
parentNote.Name = "0";
parentNote.Text = "根节点";
parentNote.Expanded = true;
treeViewNodeCollection.Add(parentNote);
treeViewNodeCollection = parentNote.Nodes;
}
var children = categorys.Where<Sysdepartment>(o => o.Parentid == parentID);
//绑定下级内容
foreach (var item in children)
{
var note = new TreeViewNode();
note.Name = item.Sysdepartmentid.ToString("f0");
note.Text = item.Departname;
note.Enabled = true;
note.Expanded = false;
BindTree(categorys, note.Nodes, item.Sysdepartmentid);
treeViewNodeCollection.Add(note);
}
}
追问
TreeViewNodeCollection 如何引用?
追答
我用的是第三方控件的库
你那边应该是用不了的
你就把这个改成微软的控件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询