你如何数据绑定到System.Windows.Forms.Treeview控件?

GWL*_*osa 13 .net data-binding treeview winforms

我正在看这个控件,它似乎缺乏数据绑定的标准.net"datasource"和"datamember"属性.这个控件不可绑定吗?我想可以编写一些自定义函数,从给定的数据源填充树视图,并根据需要嵌入数据对象,但这是"最佳实践"吗?或者每个人都只使用第三方树视图控件?

Gav*_*ler 8

你是对的,因为没有数据绑定.原因是TreeViews是分层数据结构.也就是说,不是直接列表.因此,数据绑定选项对于说明List结构无效.

可悲的是,它正在创建自己的填充方法或购买第三方控件(最终将拥有自己的填充方法.)

这是关于Binding Hierarchical Data的一篇不错的MSDN文章.


The*_*onk 5

我使用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);
    }
}
Run Code Online (Sandbox Code Playgroud)