首页 > 其他 > 详细

DevExpress的TreeList怎样设置数据源,从实例入手

时间:2019-10-14 16:37:04      阅读:104      评论:0      收藏:0      [点我收藏+]

场景

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;

这里是构建了没有层级关系的数据源,效果如上面第二个效果图那样,如果想

构造出树形层级关系,就构造出包含父子层数据结构的数据源即可。

DevExpress的TreeList怎样设置数据源,从实例入手

原文:https://www.cnblogs.com/badaoliumangqizhi/p/11671600.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!