【问题标题】:Dynamic datagrid's headers and binding动态数据网格的标题和绑定
【发布时间】:2012-04-24 09:32:51
【问题描述】:

问题:

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

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 的事件

【问题讨论】:

    标签: c# wpf gridview datagrid


    【解决方案1】:

    本质上,您需要做的(如您所见)是创建具有动态属性(即在运行时填充的属性)的对象列表。转换本身是以 Date 为中心,带有一个跨值的总和 (?),您可以在转换器中使用 GroupBy Linq 查询来执行该转换。

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

    Data binding dynamic data

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

    【讨论】:

    • 是的,它看起来像一个枢轴转换,但目的不同。我确实忘记了数据表和类似的东西。
    • 我已经使用 DataTable 解决了我的问题。您对该链接的回答对我有很大帮助。谢谢
    【解决方案2】:

    获取您的对象列表 - 根据您的条件创建一个新的对象列表。然后只需将新列表作为 itemssource 放入 datagrid/itemscontrol。

    【讨论】:

    • 编译时不知道头文件
    猜你喜欢
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 2017-06-11
    • 2010-12-12
    • 1970-01-01
    • 2011-04-23
    相关资源
    最近更新 更多