【问题标题】:how to show a list property in DataGrid properly如何在 DataGrid 中正确显示列表属性
【发布时间】:2014-12-14 00:44:13
【问题描述】:

我有一个具有 6 个属性的类,“CompletePosition”、“ActivityNumber”、“ActivityDescription”、“Duration”、“WeatherWindow”和“Critiria”,我尝试在数据网格中显示它们。目前我将 DataGrid 的 ItemsSource 设置为 IEnumerable。

您可能已经猜到了,我的问题是“Critiria”只是显示为“(Collection)”。可以说,我希望它被扩展,并且列表的每个元素都显示在它自己的列中。这可能吗?

【问题讨论】:

    标签: c# .net wpf wpfdatagrid


    【解决方案1】:

    据我所知,GridCell 中不能有另一个 Grid。根据集合中内容的性质,您可以简单地将集合分解为逗号分隔的字符串并显示它。

    比如说你的收藏是:

    [Apples, Oranges, Pears]
    

    你可以用String.Join(",", collection); 得到一个用逗号分隔的字符串。

    结果将是:Apples, Oranges, Pears

    虽然这取决于您收藏的内容。

    【讨论】:

    • 感谢您的建议,但我的意思是不要有另一个网格,而是让它看起来没有集合,而是 6 个属性。所以没有一个名为“Criteria”的列,而是 6 个列。这可能吗? “欺骗”数据网格认为有 6 个属性?
    • 您可以将这些属性添加到您绑定到 DataGrid 的任何类中。然后在绑定之前,您可以使用集合的值填充这 6 个属性。
    • 但我只能硬编码吗?大多数时候它会是6,但不是每次。没有办法做到动态?
    • 好吧,我猜你能不能遍历你的集合并动态地将列添加到 DataGrid。看到这样的东西:stackoverflow.com/questions/704724/…
    猜你喜欢
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 2013-06-05
    • 2012-06-26
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多