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

    效果

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

    简单的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;

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

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

  • 相关阅读:
    JDK5.0新特性系列目录
    JDK5.0新特性系列11.5.2线程 同步装置之CountDownLatch
    JDK5.0新特性系列11.5.4线程 同步装置之Exchanger
    JDK5.0新特性系列11.5.1线程 同步装置之Semaphore
    Axure RP Pro 6.0 原型设计工具(产品经理必备)
    JDK5.0新特性系列11.4线程 Condition
    OLTP 和 OLAP 的区别
    JDK5.0新特性系列11.5.3线程 同步装置之CyclicBarrier
    电脑通过手机上网的设置
    (转)刚开始Outlook Addin的布署问题
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/11671600.html
Copyright © 2020-2023  润新知