动态数据网格的标头和绑定

本文关键字:绑定 数据 数据网 网格 动态 | 更新日期: 2023-09-27 18:32:01

问题:

我有一个具有日期、名称和值属性的对象列表。 "名称"和"日期"属性可以不同,也可以相同。

orange  2012-01-01  1
orange  2013-01-01  0

我想创建一个带有标题(不同的日期)和行的 GridView

  Name   2012-01-01   2013-01-01
orange       1            0

如您所见,对象没有类似于"2012-01-01"的属性,因此简单的绑定将无济于事。

问题

如何使用列的名称创建绑定?

我想用 XAML 或转换器来做这件事,而不使用 UserControl 的事件

动态数据网格的标头和绑定

本质上,您需要做的(正如您已经注意到的)是创建一个具有动态属性(即在运行时填充的属性)的对象列表。 转换本身是 Date 上的透视,具有跨值的总和 (?),可以使用转换器中的 GroupBy Linq 查询执行该数据。

现在是棘手的部分。 看看这个答案:

数据

绑定动态数据

您需要实现 ICustomTypeScriptor 来实现动态属性。 祝你好运。

获取对象列表 - 根据您的条件创建一个新的对象列表。 然后,只需将新列表作为 ItemsSource 放入 DataGrid/ItemsControl 即可。