Wpf Datagrid,行集合

时间:2017-04-25 12:16:52

标签: wpf list collections datagrid row

我必须制作这样的表

Table to make

第一列是月号, 第二列是天数, 第三栏是天数。

,接下来的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>

任何想法如何制作它们?

当然我可以使用网格并生成文本块,但这个解决方案似乎是非优雅的。

我想在数据网格或类似内容中做到这一点。

1 个答案:

答案 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等)添加到定义MonthNumberOfDaysNumberOfHours属性的类中。