C# 如何基于绑定动态添加数据网格列?

C# 如何基于绑定动态添加数据网格列?,c#,wpf,C#,Wpf,我目前正在尝试找出填写数据网格列的最佳方法。网格将如下所示,其中标题表示月份的天数,行表示某种分组 1 | 2 | 3 | 4 Foo 0 5 1 3 Bar 1 1 0 3 Foo2 3 9 7 6 Bar2 9 8 6 5 这意味着在第1天(无论哪个月),有9个Bar2。我已经把所有的数据整理好了,可以开始了。但是,我想不出一个好方法来动态地将月份的天数添加为列。我添加了如何使用绑定来实现这一点,因为所有数据

我目前正在尝试找出填写数据网格列的最佳方法。网格将如下所示,其中标题表示月份的天数,行表示某种分组

       1 | 2 | 3 | 4
Foo    0   5   1   3
Bar    1   1   0   3
Foo2   3   9   7   6
Bar2   9   8   6   5
这意味着在第1天(无论哪个月),有9个Bar2。我已经把所有的数据整理好了,可以开始了。但是,我想不出一个好方法来动态地将月份的天数添加为列。我添加了如何使用绑定来实现这一点,因为所有数据都在我的视图模型中,我并不打算使用代码隐藏来添加列(当然,除非绝对必要)

此外,这不需要使用数据网格,因为此报告纯粹用于统计,永远不会被修改


我也将考虑接受一个提供使用数据网格的替代方案。

< P>您想立即生成的报告样式数据,<代码> DATABATE 与<代码> DATAGRID很好地工作。例如,使用此XAML:

<Grid>
    <DataGrid ItemsSource="{Binding}"/>
</Grid>
我们得到这个结果:


这个问题使我想起了

我认为您可以使用相同的
ICustomTypeDescriptor
方法来提供所需的列/属性


另一方面。。。如果只是为了某个蹩脚的报告,Rick Sladkey的解决方案看起来像是“更少的代码”=>更容易、更快地实现

目前只是为了统计目的。我几乎可以肯定这些要求在未来会发生变化,所以我将该链接添加到书签中。谢谢,太好了。起初,我试图在纯XAML中解决这个问题,但看一些简单问题的例子,这似乎对我没有多大好处。非常感谢。
var table = new DataTable();
table.Columns.Add(new DataColumn("Name"));
table.Columns.AddRange(Enumerable.Range(1, 4).Select(i => new DataColumn(i.ToString())).ToArray());
DataRow row = table.NewRow();
row[0] = "Foo";
row[1] = 0;
row[2] = 5;
row[3] = 1;
row[4] = 3;
table.Rows.Add(row);
DataContext = table;