首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

怎么动态的为“DataGrid”添加“列”?

2012-08-31 
如何动态的为“DataGrid”添加“列”???如何动态的为“DataGrid”添加“列”???也就是通过后台代码添加列。。。“DataG

如何动态的为“DataGrid”添加“列”???
如何动态的为“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”对象中。这样的功能应该怎么写???

[解决办法]
动态定义Datagrid的列方法很多,可以参考以下代码:

首先定义Datagrid:

C# code
DataGrid targetDataGrid = new DataGrid();targetDataGrid.ItemsSource = source;targetDataGrid.AutoGenerateColumns = false;LayoutRoot.Children.Add(targetDataGrid); 


[解决办法]

探讨

C#后台代码如何写呢???

[解决办法]
http://www.cnblogs.com/luosm/articles/2261826.html

看看这个行不行

热点排行