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

菜單名稱需依語系切換,原 MenuName 單一字串不敷使用。改為:
MenuModel 包含 List<MenuLanguageModel> LanguagesMenuLanguageModel:Type(如 zh-CN/en-US)、NameMenuModel.DefaultLanguage 唯讀屬性回傳預設語系模型在 TreeList 設計器中,將欄位 FieldName 設為:
DefaultLanguage.Name
DevExpress 會自動解析路徑:MenuModel.DefaultLanguage → MenuLanguageModel.Name。切換 DEFAULT_LANGUAGE 常數即可瞬間切換介面語言。
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() 慣例。善用這兩招,複雜型別樹狀顯示不再是難題。