2010-05-25 46 views
2

我有一个用户控件...并且使用此用户控件的基页具有将由用户控件使用的数据集。我们是否可以将动态数据(数据集或列表)绑定到WPF中的控件

我的数据集是动态的...意味着它可以有不同数量的列,这取决于我的用户控件实现的页面。有没有在WPF中,我可以用来绑定这个数据集(不知道列信息)的任何控制...我的意思是类似于2.0中的datagrid/gridview?

回答

5

看看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>"); 
    } 
} 
+0

是微软WPF工具包。因为我的客户是verymuch严格ABT“不using-第三方控制“:( – Relativity 2010-05-25 06:33:47

相关问题