2
我有一个用户控件...并且使用此用户控件的基页具有将由用户控件使用的数据集。我们是否可以将动态数据(数据集或列表)绑定到WPF中的控件
我的数据集是动态的...意味着它可以有不同数量的列,这取决于我的用户控件实现的页面。有没有在WPF中,我可以用来绑定这个数据集(不知道列信息)的任何控制...我的意思是类似于2.0中的datagrid/gridview?
我有一个用户控件...并且使用此用户控件的基页具有将由用户控件使用的数据集。我们是否可以将动态数据(数据集或列表)绑定到WPF中的控件
我的数据集是动态的...意味着它可以有不同数量的列,这取决于我的用户控件实现的页面。有没有在WPF中,我可以用来绑定这个数据集(不知道列信息)的任何控制...我的意思是类似于2.0中的datagrid/gridview?
看看WPF toolkit,它包含一个符合您的要求的网格。
此工具包由Microsoft构建,属于Microsoft Shared Source Initiative(请参阅我提供的链接)。
虽然这不是我的微软支持的,所以如果你有一个bug,你可以使用他们的论坛,但不能打电话给MS支持。
如果你确实想自己做,你可以写一些代码,它需要一个List<T>
,你得到泛型类型,获取属性,迭代它们,写列标题,迭代所有项目列表并写入所有属性。
我写了这个代码,而回到列表写HTML表格,我希望这是有用的:?
public void PrintList<T>(List<T> list)
{
if(null!=list.FirstOrDefault())
{
Type t = typeof(list[0]);
PropertyInfo[] properties = t.GetProperties();
// properties = list of all properties.
print("<table><tr>");
foreach(var property in properties)
{
// print property title
print(string.Format("<th>{0}</th>", property.Name));
}
print("</tr>");
foreach(var item in list)
{
print("<tr>");
foreach(var property in properties)
{
var propertyValue = t.InvokeMember(property.Name, BindingFlags.GetProperty, null, item, new object[] {});
print(string.Format("<td>{0}</td>", propertyValue));
}
print("</tr>");
}
print("</table>");
}
}
是微软WPF工具包。因为我的客户是verymuch严格ABT“不using-第三方控制“:( – Relativity 2010-05-25 06:33:47