欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-29 09:23:47
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243 在上面已经实现DevExpress的安装之后,拖拽一个TreeList,然后怎样给 ......

场景

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 属性。

效果

子节点较多的树形结构效果

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

 

简单的treelist效果

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

 

 

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

注:

博客主页:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

为了存取每个节点的父级关系,新建一个节点实体类用来存取节点信息。

此实体具体的属性可以自行添加,但是如上面所说的,必须要有能标识节点间父子关系的

属性字段并且告诉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;

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

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