TreeView是Winform 的一个控件,一般通过动态数据给其赋值,先给父节点赋值,然后再给其子节点赋值,如此循环反复。
一、递归对数据源的要求
在递归绑定树节点时,我们对数据库的树表的设计方式,一般都是采用树状结构去设计表。
一般情况是设计表的时候,有父级单位的代号,然后2级目录就绑在1级目录下面,3级绑定在2级下面,同级并列.

二、代码
public void TreeViewBind(TreeNode chilNode,int parentId)
{
//数据源,GetTreeData()是我自己打的一个获取数据源方法
var data = GetTreeData().Where(m=>m.ParentId == parentId);
foreach (var item in data)
{
//创建一个新节点
TreeNode node = new TreeNode(item.Name);
node.Tag = item.Id;
//付完值,添加到传入节点的子节点集合中
chilNode.Nodes.Add(node);
//重新调用递归绑定
TreeViewBind(node, int.Parse(node.Tag.ToString()));
}
}
页面加载这个方法
private void BankManagementForm_Load(object sender, EventArgs e)
{
TreeNode node = new TreeNode("银行系统管理系统");
node.Tag = 0;
this.tvBankTree.Nodes.Add(node);//给当前treeview添加一个父节点
TreeViewBind(node,0); 调用递归绑定
}
