我必须制作这样的表
第一列是月号, 第二列是天数, 第三栏是天数。
,接下来的31列是十进制值。
所以我想绑定一个这个值的列表,所以我的wpf将是这样的:
<Grid>
<DataGrid AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Month" Binding="{Binding Month}"/>
<DataGridTextColumn Header="NumberOfDays" Binding="{Binding NumberOfDays}"/>
<DataGridTextColumn Header="NumberOfHours" Binding="{Binding NumberOfHours}"/>
//so here I`d like to have collection to 31 columns
</DataGrid.Columns>
</DataGrid >
</Grid>
任何想法如何制作它们?
当然我可以使用网格并生成文本块,但这个解决方案似乎是非优雅的。
我想在数据网格或类似内容中做到这一点。
答案 0 :(得分:0)
您可以通过编程方式生成列:
for (int i = 1; i< 32; ++i)
{
dg.Columns.Add(new DataGridTextColumn() { Header = i.ToString(), Binding = new Binding("Day" + i.ToString()) });
}
或者您可以在XAML标记中定义它们:
<DataGrid.Columns>
<DataGridTextColumn Header="Month" Binding="{Binding Month}"/>
<DataGridTextColumn Header="NumberOfDays" Binding="{Binding NumberOfDays}"/>
<DataGridTextColumn Header="NumberOfHours" Binding="{Binding NumberOfHours}"/>
<DataGridTextColumn Header="1" Binding="{Binding Day1}"/>
<DataGridTextColumn Header="2" Binding="{Binding Day2}"/>
//and so on
</DataGrid.Columns>
您需要每天将公共属性(Day1,Day2等)添加到定义Month
,NumberOfDays
和NumberOfHours
属性的类中。