首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

DevExpress TreeList 進階綁定:複雜型別與多語言顯示技巧

     編輯:關於.NET

基礎綁定回顧

TreeList 綁定層級資料需設定 KeyFieldName(如 ID)與 ParentFieldName(如 ParentID),再指定顯示欄位 FieldName="MenuName",資料源指派給 DataSource 即可呈現樹狀結構。

基礎 TreeList 效果

挑戰:多語言支援

菜單名稱需依語系切換,原 MenuName 單一字串不敷使用。改為:

  • MenuModel 包含 List<MenuLanguageModel> Languages
  • MenuLanguageModel:Type(如 zh-CN/en-US)、Name
  • MenuModel.DefaultLanguage 唯讀屬性回傳預設語系模型

技巧一:深層路徑綁定(Dot Notation)

在 TreeList 設計器中,將欄位 FieldName 設為:

DefaultLanguage.Name

DevExpress 會自動解析路徑:MenuModel.DefaultLanguage → MenuLanguageModel.Name。切換 DEFAULT_LANGUAGE 常數即可瞬間切換介面語言。

技巧二:覆寫 ToString() 統一顯示邏輯

public class MenuLanguageModel {
    public string Type { get; set; }
    public string Name { get; set; }
    public override string ToString() => Name; // 直接回傳顯示文字
}

設計器欄位 FieldName 設為 DefaultLanguage(不加 .Name)。綁定引擎呼叫 ToString() 取得顯示值,同樣達到多語言切換效果。

總結比較

方式FieldName 設定適用場景
深層路徑DefaultLanguage.Name需存取巢狀物件特定屬性,直觀明確
ToString 覆寫DefaultLanguage物件本身即代表顯示字串,符合 .NET 綁定慣例

限制提醒

ParentFieldName 不支援點號路徑,必須是實體上的單層屬性(如 ParentID),無法寫成 Parent.Id。

心得

DevExpress 綁定引擎極具彈性:既支援路徑導航,又尊重 ToString() 慣例。善用這兩招,複雜型別樹狀顯示不再是難題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved