DevExpress學習筆記(六) Edit樹節點

2022-03-07 06:58:40 字數 1690 閱讀 7615

devexpress學習筆記

edit樹節點的列

所謂edit樹節點的列,有如下兩層含義:(1)根據某標識決定節點的某列cell的形式,例如cell可選擇為時間控制項,dropdownlist控制項等等;(2)與第一點類似,但是需要在執行時才動態決定cell的型別,例如滑鼠單擊某cell的時候,決定此cell為哪種控制項。因此將這兩種型別概括為「靜態edit」和「動態edit」。

一 靜態edit

靜態edit在devexpress的官方示例中有乙個很棒的示例,demo執行的效果圖如下:

分析此demo的原始碼,首先看下初始化資料部分,函式為initdata:

view code

//

這個函式構造了乙個包含11元素的record陣列,並將此陣列作為treelist的資料來源。

private

void

initdata()

進一步檢視record的原始碼,發現其建構函式為:

view code

public record(string category, object product1, object product2, object product3, int id) : this(category, product1, product2, product3, id, -1

) {}

public record(string category, object product1, object product2, object product3, int id, int

parentid)

在這裡需要重視id和parentid的構造方法,這兩個屬性決定的是樹的層級關係。另外,感覺好像treelist能夠自動繫結名稱為id和parentid的字段,很神奇。

其次,有了資料來源就需要設定其cell的edit的形式了,靜態edit需要實現的是getcustomnodecelledit這個事件響應,原始碼如下:

view code

private

void treelist1_getcustomnodecelledit(object

sender, devexpress.xtratreelist.getcustomnodecellediteventargs e) }}

}

從原始碼中可以看出,根據資料來源中的名稱屬性決定某一列的cell採用哪種編輯控制項。不過,這些控制項首先都需要在treelist控制項中進行宣告的。關於如何宣告,請看下圖:

二 動態edit

現在我需要在滑鼠點選某個cell的時候確定當前的cell繫結的控制項型別,這裡需要實現treelist的customnodecelleditforediting的響應事件。

view code

private

void treelist1_customnodecelleditforediting(object

sender, getcustomnodecellediteventargs e)

}}

repositoryitem所需要控制項需要提前在treelist控制項中進行宣告的。

DevExpress控制項學習

二 列表控制項繫結資料的兩種方式 如使用的form窗體是從devexpress的模板窗體派生來的,那所有的基礎控制項也都推薦使用devexpress封裝過的,因為會有配套 devexpress的xtraform.lookandfeel可改變 風格 devexpress控制項有許多擴充套件的屬性在pr...

devexpress控制項使用筆記

chartcontrol 控制項 製作拼圖 private void createqualitative devexpress.xtracharts.chartcontrol chartcontrol1,datatable dt,string namefiledname,string countfi...

Linux Shell學習筆記六

第八學時 引用 術語引用 引用即是將被選擇文字用某種型別的引用標記括起來,從而使得被選擇文字變成文字字元。轉義 轉義乙個字元意味著該字元前加乙個反斜線 從而轉義或者去除了shell命令中該字元的特殊含 義,或者正如讀者在echo命令中看到的 n 一樣增加特殊含義。跟在反斜線後的字元被稱為轉義字元。特...