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