Dot-Net

如何將數據綁定到 System.Windows.Forms.Treeview 控制項?

  • December 13, 2018

我正在查看這個控制項,它似乎缺少用於數據綁定的標準 .net“數據源”和“數據成員”屬性。這個控制項不可綁定嗎?我想我可以編寫一些自定義函式來從給定的數據源填充樹視圖,並根據需要嵌入數據對象,但這是“最佳實踐”嗎?還是每個人都只是使用 3rd 方樹形視圖控制項?

您是正確的,因為沒有數據綁定。原因是 TreeViews 是分層資料結構。也就是說,不是一個直接的列表。因此,databind 選項對於說 List 結構是無效的。

可悲的是,它正在創建自己的填充方法或購買第 3 方控制項(最終將擁有自己的填充方法。)

這是一篇關於Binding Hierarchical Data的不錯的 MSDN 文章。

我使用 Developer’s Express 中的樹形控制項。它將獲取一個數據表並以分層方式顯示/編輯它。

它所需要的只是表中的一個主鍵欄位和一個父 id 欄位,它可以找出去哪裡。

如果您滾動自己的程式碼並使用自己的類,則可以做同樣的事情。

class Node
{
   System.Collections.Generic.List<Node> _Children;
   String Description;

   void Node()
   {
     _Children = new System.Collections.Generic.List<Node>();
   }

   public System.Collections.Generic.List<Node> Children()
   {
     return (_Children);
   }
}

class Program
{
   static void Main(string[] args)
   {
     System.Collections.Generic.List<Node> myTree = new System.Collections.Generic.List<Node>();
     Node firstNode = new Node();
     Node childNode = new Node();
     firstNode.Children().Add(childNode);
   }
}

引用自:https://stackoverflow.com/questions/372820