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

為{幸葍}努か 提交于 2020-03-24 08:14:31

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

Code

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

Code

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

Code

        附带Xaml的定义代码:

Code


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

Code


 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!