zoukankan      html  css  js  c++  java
  • 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;

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

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

  • 相关阅读:
    数据流图DFD画法
    数据流图的画法
    那些年我们一起追逐过的安全工具
    30秒攻破任意密码保护的PC:深入了解5美元黑客神器PoisonTap
    CentOS 7.x设置自定义开机启动,添加自定义系统服务
    centos7 开机/etc/rc.local 不执行的问题
    一步一步教你如何解锁被盗的iPhone 6S
    Netflow elasticflow
    Azure Monitor Kibana configuration always seems to send over SSL
    netflow-module
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/11671600.html
Copyright © 2011-2022 走看看