none
如何动态的为“DataGrid”添加“列”??? RRS feed

  • 问题

  • 如何动态的为“DataGrid”添加“列”???   也就是通过后台代码添加列。。。

    “DataGrid”定义如下:

    <sdk:DataGrid Grid.Row="1" Name="dg_EnergyCustom" AutoGenerateColumns="False" >

                                                <sdk:DataGrid.Columns>
                                                    <sdk:DataGridTemplateColumn     DisplayIndex="-1"   Header="年份" IsReadOnly="True" Width="30*" >
                                                        <sdk:DataGridTemplateColumn.CellTemplate >
                                                            <DataTemplate>
                                                                <TextBlock FontSize="13" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding EnergyYear}"></TextBlock>
                                                            </DataTemplate>
                                                        </sdk:DataGridTemplateColumn.CellTemplate>
                                                    </sdk:DataGridTemplateColumn>
                                                    <sdk:DataGridTemplateColumn Header="项目" Width="30*">
                                                        <sdk:DataGridTemplateColumn.CellTemplate >
                                                            <DataTemplate>
                                                                <Grid ShowGridLines="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
                                                                    <Grid.RowDefinitions>
                                                                        <RowDefinition Height="20" />
                                                                        <RowDefinition Height="20"/>
                                                                        <RowDefinition Height="20"/>
                                                                    </Grid.RowDefinitions>
                                                                    <TextBlock Text="能耗量合计" Grid.Row="0"   ></TextBlock>
                                                                    <TextBlock Text="单位面积能耗" Grid.Row="1"></TextBlock>
                                                                    <TextBlock Text="生均能耗" Grid.Row="2"></TextBlock>
                                                                </Grid>

                                                            </DataTemplate>
                                                        </sdk:DataGridTemplateColumn.CellTemplate>
                                                    </sdk:DataGridTemplateColumn>
                                                    <sdk:DataGridTemplateColumn Header="全校" Width="40*">
                                                        <sdk:DataGridTemplateColumn.CellTemplate >
                                                            <DataTemplate>
                                                                <Grid ShowGridLines="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                                                    <Grid.RowDefinitions>
                                                                        <RowDefinition Height="20" />
                                                                        <RowDefinition Height="20"/>
                                                                        <RowDefinition Height="20"/>
                                                                    </Grid.RowDefinitions>
                                                                    <TextBlock  Grid.Row="0"  Text="{Binding EnergySum}"  ></TextBlock>
                                                                    <TextBlock  Grid.Row="1" Text="{Binding EnergyUnitArea}" ></TextBlock>
                                                                    <TextBlock  Grid.Row="2" Text="{Binding EnergyEveryOne}"></TextBlock>
                                                                </Grid>

                                                            </DataTemplate>
                                                        </sdk:DataGridTemplateColumn.CellTemplate>
                                                    </sdk:DataGridTemplateColumn>
                                                </sdk:DataGrid.Columns>

                                            </sdk:DataGrid>

    问题:

           如何通过后台代码为“DataGrid”添加一列???列的静态XAML定义如下:

           

          <sdk:DataGridTemplateColumn Header="电信学院" Width="40*">
                                                        <sdk:DataGridTemplateColumn.CellTemplate >
                                                            <DataTemplate>
                                                                <Grid ShowGridLines="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                                                    <Grid.RowDefinitions>
                                                                        <RowDefinition Height="20" />
                                                                        <RowDefinition Height="20"/>
                                                                        <RowDefinition Height="20"/>
                                                                    </Grid.RowDefinitions>
                                                                    <TextBlock  Grid.Row="0"  Text="{Binding EnergySum1}"  ></TextBlock>
                                                                    <TextBlock  Grid.Row="1" Text="{Binding EnergyUnitArea1}" ></TextBlock>
                                                                    <TextBlock  Grid.Row="2" Text="{Binding EnergyEveryOne1}"></TextBlock>
                                                                </Grid>

                                                            </DataTemplate>
                                                        </sdk:DataGridTemplateColumn.CellTemplate>
                                                    </sdk:DataGridTemplateColumn>
                                                </sdk:DataGrid.Columns>

    个人思路:

                 实例化“DataGridTemplateColumn”对象“DataGridTemplateColumn dgtc = new DataGridTemplateColumn();”,然后将“dgtc”添加到“DataGrid”中。

                 但是自己不知道,“CellTemplate”、“DataTemplate”这些元素怎样实例化,然后添加进入“ DataGridTemplateColumn”对象中。这样的功能应该怎么写???


    Science and technology is my lover.

    2012年7月25日 11:11

答案