通过 IDictionary对Silverlight DataGrid 进行动态数据绑定

      要对DataGrid进行数据绑定,通常我们需要定义具体类,而后建立类的范式集合。如下所示:

Code

      也就说说,如果要在DataGrid中show集合数据,就需要有具体类的存在【匿名类在绑定的时候会出现运行期异常】。这在很多情况下是可行的.
      但是有时候,某个集合只需要show一次而已,而我们又不得不给建立具体类以使得其信息能够在DataGrid中显示。也就是说在要显示的集合的列不确定时,建立具体类实在是有点“浪费”。
      这种情况下,我们可以建立“自己”的集合类【这时候免不了要用到Indexer】,利用Dictionary来动态建立集合列,从而实现数据的动态添加和显示:

Code

     这样产生的集合,在DataGrid绑定时,绑定的为Row.所以在UI显示之前,要对数据集合进行转换,使得DataGrid中显示需要显示的列数据:

Code

        附带Xaml的定义代码:

Code


  ps:注意到 IValueConverter 的应用,可以参考msdn.
     建立转换类后,其将作为一个资源存在,故而在xaml中要对此资源进行说明【见上述xaml】。
     下面是对此接口的一个简单应用:在ListBox中显示时间前对其进行格式化。

Code


 

posted on 2009-05-27 11:04  easy2Dev  阅读(2280)  评论(0编辑  收藏  举报

导航