场景
Winform控件-DevExpress18下载安装注册以及在VS中使用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243
在上面已经实现DevExpress的安装之后,拖拽一个TreeList,然后怎样给其设置数据源。
设置数据源
1.TreeList 控件可以被绑定到任何传统的数据源: BindingSource、DataTable、DataView 和 DataSet 对象,以及实现了 IList、TypedList 或 IBindingList 接口的对象。
2.要把 TreeList 控件绑定到数据源,则使用 TreeList.DataSource 属性。
3.必须在数据源中通过两个字段实现关于父/子关系的信息。 一个字段必须存储节点的唯一 ID。 另一个字段必须为每个节点都包含父节点的 ID。 要为 TreeList 控件指定这些字段,则使用 TreeList.KeyFieldName 和 TreeList.ParentFieldName 属性。
效果
子节点较多的树形结构效果
简单的TreeList效果
注:
博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
为了存取每个节点的父级关系,新建一个节点实体类用来存取节点信息。
此实体具体的属性可以自行添加,但是如上面所说的,必须要有能标识节点间父子关系的
属性字段并且告诉TreeList你设置的标识变量和父级标识变量是啥。
public class DataTreeNode { private string id; private string parentId; private string nodeText; public string Id { get { return id; } set { id = value; } } public string ParentId { get { return parentId; } set { parentId = value; } } public string NodeText { get { return nodeText; } set { nodeText = value; } } }
然后设置数据源
string fieldName = "NodeText"; string keyFieldName = "Id"; string parentFieldName = "ParentId"; string fileName = System.IO.Path.GetFileNameWithoutExtension(String.Format("{0}{1}",Global.Instance.CurrCompareDataFile,Global.MAIN_EXT)); DataTreeNode node = new DataTreeNode(); node.ParentId = null; node.NodeText = fileName; node.Id = Global.Instance.CurrCompareDataFile; Global.Instance.CompareData.Add(node); DataTreeListHelper.SetTreeListDataSource(this.treeList2, Global.Instance.CompareData, fieldName, keyFieldName, parentFieldName); this.treeList2.RefreshDataSource();
这里设置数据源抽离了一个方法SetTreeListDataSource,在方法中
treeList.KeyFieldName = keyFieldName; treeList.ParentFieldName = parentFieldName; treeList.DataSource = data;
这里是构建了没有层级关系的数据源,效果如上面第二个效果图那样,如果想
构造出树形层级关系,就构造出包含父子层数据结构的数据源即可。