14

我正在查看这个控件,它似乎缺少用于数据绑定的标准 .net“数据源”和“数据成员”属性。这个控件不可绑定吗?我想我可以编写一些自定义函数,从给定的数据源填充树视图,并根据需要嵌入数据对象,但这是“最佳实践”吗?还是每个人都只是使用 3rd 方树形视图控件?

4

3 回答 3

9

您是正确的,因为没有数据绑定。原因是 TreeViews 是分层数据结构。也就是说,不是一个直接的列表。因此,databind 选项对于说 List 结构是无效的。

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

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

于 2008-12-16T23:38:24.597 回答
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);
    }
}
于 2008-12-17T02:46:58.010 回答
2

如果只有几个级别,我喜欢用几个表填充数据集并在列上设置 DataRelation。然后你使用一些嵌套循环并创建你的树节点。

于 2008-12-16T23:47:27.060 回答