您的位置:首页 > 其它

DevExpress之TreeList绑定复杂数据类型

2013-01-18 10:11 1046 查看
上篇讲了PivotGridControl,有的大湿可能觉得废话多了,还有的说呢官方文档里面已经说得很详细了,这个倒是事实。但是文档是死的,业务是变幻莫测的,所以我今天还是来分享想下TreeList使用的一些个人经验,那些官方文档官方Demo有的就不多啰嗦了,可能只是一笔带过。

首先先一笔带过下这个TreeList的简单使用:
1.模拟创建一些实体和数据源提供代码。

MenuLanguageModel

public class MenuLanguageModel
{
private int id;
private int menuID;
private string type;
private string name;

public int ID
{
get { return this.id; }
set { this.id = value; }
}

public int MenuID
{
get { return this.menuID; }
set { this.menuID = value; }
}

/// <summary>
/// 语言类型
/// </summary>
public string Type
{
get { return this.type; }
set { this.type = value; }
}

public string Name
{
get { return this.name; }
set { this.name = value; }
}
}


  在TreeList控件的Run Designer里找到刚刚添加“MenuName”字段,将FieldName属性改为 “DefaultLanguage.Name”,然后运行,发现,显示效果与上一次运行的完全一致。
  我们再在MenuModel类里修改常量“DEFAULT_LANGUAGE”值为“en-US”,好,一个全新英文界面出来咯,嘎嘎!依次类推可以使其支持我们所需要的语言的哦,亲!!

接下来看另外一种解决方案,也是.NET开发中比较通用的方案,Override ToString方法。现在,我在MenuLanguageModel类里面添加方法:

public override string ToString()
{
return this.Name; ;
}


然后在TreeList控件的Run Designer里找到“MenuName”字段,将FieldName属性改为 “DefaultLanguage”,然后运行,发现,显示效果与之前运行的完全一致。

针对上述我简要总结一下(其实上面啰嗦了那么多我就是想表达下面的结论):
1.DevExpress深层复杂绑定,可通过.号将需要显示的属性串联起来,如DefaultLanguage.Name,显示的是DefaultLanguage属性的这个对象的Name属性。
2.在.NET绑定中显示时,其实调用的都是对应字段或属性的ToString方法,因而在显示复杂类型中,我们可以通过重写ToString方法以控制其绑定后显示出我们需要的样子,这也是.NET中比较通用的方式。
3.另外,在TreeList的ParentFieldName属性中的ParentID不能通过.号进行绑定来关联。

个人见识有限,抛砖之后希望大家多多引玉!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: