【发布时间】:2010-09-27 05:36:30
【问题描述】:
我正在查看这个控件,它似乎缺少用于数据绑定的标准 .net“数据源”和“数据成员”属性。这个控件不可绑定吗?我想我可以编写一些自定义函数来从给定的数据源填充树视图,并根据需要嵌入数据对象,但这是“最佳实践”吗?还是每个人都只是使用 3rd 方树形视图控件?
【问题讨论】:
标签: .net winforms data-binding treeview
我正在查看这个控件,它似乎缺少用于数据绑定的标准 .net“数据源”和“数据成员”属性。这个控件不可绑定吗?我想我可以编写一些自定义函数来从给定的数据源填充树视图,并根据需要嵌入数据对象,但这是“最佳实践”吗?还是每个人都只是使用 3rd 方树形视图控件?
【问题讨论】:
标签: .net winforms data-binding treeview
我使用 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);
}
}
【讨论】:
您是正确的,因为没有数据绑定。原因是 TreeViews 是分层数据结构。也就是说,不是一个直接的列表。因此,databind 选项对于说 List 结构是无效的。
遗憾的是,它正在创建您自己的填充方法或购买第 3 方控件(最终将拥有自己的填充方法。)
这是 Binding Hierarchical Data 上一篇不错的 MSDN 文章。
【讨论】:
如果只有几个级别,我喜欢用几个表填充数据集,并在列上设置 DataRelation。然后你使用一些嵌套循环并创建你的树节点。
【讨论】: