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;

這里是構建了沒有層級關系的數據源,效果如上面第二個效果圖那樣,如果想

構造出樹形層級關系,就構造出包含父子層數據結構的數據源即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM