Silverlight4的属性绑定支持索引器,利用这个特性就可以实现VM对V提供更为方便的支持,而且对于基本类型的字典还可以穿越WFC RIA服务,对于DataTable之类的动态数据,就可以利用这个特性不仅可以穿越服务,还可以动态绑定到Silverlight客户端.
动态实体:
public class DynamicEntity
{
Dictionary<string,string> Fields{get;set} //字段名-Caption对
Dictionary<string,string> Values{get;set;} //字段名-值
Dictionary<string,string> FieldTypes{get;set;} //字段名-值类型
Dictionary<string,string> ImageFieldindex{get;set}//如果是Image字段,指明对应的承载值的属性名.
byte[] Image1{get;set;}
byte[] Image2{get;set;}
}
这种方法比较简单,适合哪种动态查询和报表的显示,而且FieldTypes,ImageFieldindex一般情况下都不需要。绑定的语法跟实体绑定差不多(多一层索引):
假设DataContext指向实体集合.
DataGrid中的绑定方式:{binding [字段名]}
注意,在这种情况下客户端没法应用DataGrid的动态创建Columns的特性.但我们利用程序可以很轻易的创建。这种方式特别适合于报表和查询的实现。 另外,在MVVM中充分利用字典的这种索引绑定特性,可大大减少硬代码量,比如命令,绑定等,而且容易维护。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。