Silverlight DataGrid绑定 - 如何将子字典项目绑定为父类属性?
问题描述:
我有这样一类被绑定到DataGrid为的ItemSource:Silverlight DataGrid绑定 - 如何将子字典项目绑定为父类属性?
public class Item
{
public int Id { get; set; }
public string Status { get; set; }
public Dictionary<string, string> DynamicProperties { get; set; }
}
我要绑定List<Item>
到一个Silverlight datagird和显示列,因为这
ID |状态| DynamicProperties [0] | DynamicProperties [1] | ......
我该如何执行此操作?
答
支持Silverlight 4及更高版本bindings with string indexers。您简单绑定与路径如下:
{Binding Path=DynamicProperties['propertyIndex']}
对于版本更加早期的Silverlight,解决的办法是要复杂得多,as described on my blog。
如果你想直接创建列,只需通过代码隐藏来完成。上面引用的博文介绍了如何动态创建DataGrid。
此外,字典是动态的,直到运行时才知道字典的项目数。 – Xin 2012-02-22 09:58:21
它是silverlgiht 4/mvvm光 – Xin 2012-02-22 10:03:07
发现这解决了我的问题 - http://msmvps.com/blogs/deborahk/archive/2011/01/23/populating-a-datagrid-with-dynamic-columns-in- a-silverlight-application-using-mvvm.aspx – Xin 2012-02-22 10:29:45