我在看这个控件,似乎缺少数据绑定的标准.net“datasource”和“datamember”属性。这个控件不可绑定吗?我想可以编写一些自定义函数来填充给定数据源的树视图,并根据需要嵌入数据对象,但这是“最佳实践”吗?或者每个人都只使用第三方树视图控件?
答案 0 :(得分:8)
你是正确的,因为没有数据绑定。原因是TreeViews是分层数据结构。也就是说,不是直接列表。因此,数据绑定选项无效,表示列表结构。
可悲的是,它正在创建您自己的填充方法或购买第三方控件(最终将拥有自己的填充方法。)
这是关于Binding Hierarchical Data的一篇不错的MSDN文章。
答案 1 :(得分: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);
}
}
答案 2 :(得分:2)
如果它只有几个级别,我喜欢使用几个表填充数据集并在列上设置DataRelation。然后使用一些嵌套循环并创建树节点。