【发布时间】:2017-11-14 21:00:10
【问题描述】:
我有多个列表集,其中包含有关列标题和该列值的数据。对于任何特定集,列标题保持不变。但对于不同的集,它们是不同的。集中的每个列表将代表数据网格中的一行。在特定时间,一组数据将显示在网格中。因此,该组中所有列表的列标题将相同。列表中的值将显示在行中。假设我们有两个列表:
List<Data> l1 = new List<Data>(){new Data(){Header="A",Value="A1"},new Data(){Header="B",Value="B1"}};
List<Data> l2 = new List<Data>(){new Data(){Header="A",Value="A2"},new Data(){Header="B",Value="B2"}};
数据应在网格中显示为:
A B
A1 B1
A2 B2
那么,我如何实现这一点,至于创建绑定我必须创建公共属性。而且我不能对这些属性进行硬编码,因为它们是动态的。
【问题讨论】:
-
创建
DataTable,添加 DataColumns 和 DataRows,遵循列名和行值的规则,并将 DataTable.DefaultView 绑定到 DataGrid。这样您就可以获得对任意数量的属性(列)的支持 -
@ASh 我将数据网格的项目源设置为数据表的默认视图。但数据网格不显示任何内容。我还将表格设置为网格的数据上下文,即使网格不显示任何内容。
-
请分享您的更新代码
-
@ASh 已添加代码,请查看。
-
@ASh 当我将 AutoGenerateColumns 属性设置为 true 时,它起作用了。