WinForm TreeView绑定


      在类别显示的时候,我们往往会选择树状的形式展现出来,这个很常见,我们来看看在winForm中如何绑定

在winForm的控件中,已经为我们提供了一个树状展示的控件TreeView,这个用起来很方便,只要记住几点就可以很好完成数据的绑定

首先,TreeView的节点是TreeNode,每一个节点都是一个TreeNode对象

其次、完成对每个TreeNode对象的属性绑定

然后、可以通过TreeNode的Nodes.add(treeNode)添加子节点

最后、将节点绑定到TreeVIew上 如:treeView1.Nodes.Add(treeNode);

看看下面的例子就一目了然了

View Code
         public  void BindTreeView()
        {
             // 根节点
            TreeNode treeNode =  new TreeNode();
            treeNode.Name =  " 节点名称 ";
            treeNode.Text =  " 根节点 ";

             // 根节点下面的子节点
            TreeNode node1 =  new TreeNode();
            node1.Text =  " 第二个节点1 ";

            TreeNode node2 =  new TreeNode();
            node2.Text =  " 第二个节点2 ";


            TreeNode node3 =  new TreeNode();
            node3.Text =  " 第二个节点3 ";

            TreeNode node4 =  new TreeNode();
            node4.Text =  " 第二个节点4 ";


             // 将节点添加到根节点中
            treeNode.Nodes.Add(node1);
            treeNode.Nodes.Add(node2);
            treeNode.Nodes.Add(node3);
            treeNode.Nodes.Add(node4);



             // 为第二个子节点1添加子节点
            TreeNode childNode1= new TreeNode();
            childNode1.Text= " 子节点1-1 ";

            TreeNode childNode2= new TreeNode();
            childNode2.Text= " 子节点1-2 ";

            TreeNode childNode3= new TreeNode();
            childNode3.Text= " 子节点1-3 ";

            node1.Nodes.Add(childNode1);
            node1.Nodes.Add(childNode2);
            node1.Nodes.Add(childNode3);

             // 为第二个子节点2添加子节点
            TreeNode childNode4 =  new TreeNode();
            childNode4.Text =  " 子节点2-1 ";

            TreeNode childNode5 =  new TreeNode();
            childNode5.Text =  " 子节点2-2 ";

            TreeNode childNode6 =  new TreeNode();
            childNode6.Text =  " 子节点2-3 ";

            node2.Nodes.Add(childNode4);
            node2.Nodes.Add(childNode5);
            node2.Nodes.Add(childNode6);

             // 将根节点添加到TreeView中
            treeView1.Nodes.Add(treeNode);
            treeView1.ExpandAll();
        }

下面来看一个将xml文件的数据读取到树上的例子

xml文件

 

View Code
<? xml version="1.0" encoding="utf-8" ?>
< Users >
   < User  id ="0" >
     < Name >Jeffrey </ Name >
     < Sex ></ Sex >
     < UserName >Jeffrey </ UserName >
   </ User >
   < User  id ="1" >
     < Name >Tom </ Name >
     < Sex ></ Sex >
     < UserName >tom </ UserName >
   </ User >
   < User  id ="2" >
     < Name >Jef </ Name >
     < Sex ></ Sex >
     < UserName >jef </ UserName >
   </ User >
   < User  id ="3" >
     < Name >1 </ Name >
     < Sex >1 </ Sex >
     < UserName >1 </ UserName >
   </ User >
</ Users >

读取并绑定到TreeView上

 

View Code
         public  void bindXmltoTreeView()
        {
            XmlDocument xdoc =  new XmlDocument();
            xdoc.Load(System.Environment.CurrentDirectory +  " \\UsersXml.xml ");
            XmlNodeList xnodeList = xdoc.SelectNodes( " //User ");

            TreeNode parentNode =  new TreeNode( " 根节点 ");
            treeView2.Nodes.Add(parentNode);
             foreach (XmlNode node  in xnodeList)
            {
                 string name = node.ChildNodes.Item( 0).InnerText;
                TreeNode tnode =  new TreeNode(name);
                parentNode.Nodes.Add(tnode);

                 string Sex = node.ChildNodes.Item( 1).InnerText;
                TreeNode tnode1 =  new TreeNode(Sex);
                tnode.Nodes.Add(tnode1);

                 string UserName = node.ChildNodes.Item( 2).InnerText;
                TreeNode tnode2 =  new TreeNode(UserName);
                tnode.Nodes.Add(tnode2);
            }
            treeView2.ExpandAll();
        }

当然了,如果是无限极分类,可以使用递归循环就可以了,这里把代码贴出来,以后方便直接拷贝使用,提供编码效率


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM