【问题标题】:databinding DataGrid to a List<object[]>将 DataGrid 数据绑定到 List<object[]>
【发布时间】:2011-07-09 06:54:51
【问题描述】:

我有一个List&lt;object[]&gt; MyCollection,它是SELECT SQL 查询的结果。
每个object[]代表查询结果中的一行,不同查询的数组长度会有所不同。
我在单独的List&lt;string&gt; MyHeaders 中有列标题的名称。

我想使用来自MyHeaders 的列标题将MyCollection 数据绑定到DataGrid,并自动生成这些列。

我想使用AutoGenerateColumns 的原因是因为我希望Datagrid 重新调整每个对象的数据类型,并为每个数据类型使用适当的列模板。

谢谢!

【问题讨论】:

  • 我认为 DataGrid 会比动态标签更好。我也很好奇解决方案:)

标签: c# wpf silverlight data-binding datagrid


【解决方案1】:

如果您遇到困难并需要继续:使用数据集/数据表。古老,但它们仍然可以正常工作!如果你想知道它是否可以完成,我不知道。我见过的大多数绑定到 IList 的示例都是手动循环和创建列。

问候 GJ

【讨论】:

  • 我对使用 Datatable 感到有些放心,但还是决定使用它。这似乎是最简单的解决方案。
  • 哈哈,是的,我知道,他们感觉不到 MVVMy/Linqy,但我确实认为他们最近没有得到足够的爱 ;-)
【解决方案2】:

不要使用列表作为标题,使用字典并使用属性名称作为键并将描述作为值。做一个正常的 blah.DataSource = List 和 DataBind()。在您的 itemdatabound 事件中,通过使用以下内容搜索字典,将标题替换为您的描述:

foreach col in grid.Columns { col.Name = dic[col.Name].Value; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2013-05-28
    相关资源
    最近更新 更多