2009-12-23 45 views
3

我想在WPF GridView中通过添加一个跨越GridView中几个列的额外标题行来“分组”一些列。如何在WPF GridView中使用ColumnSpans创建多个头?

在ASP.Net与中继器,这将是这样的:

<asp:Repeater ID="myRepeater"> 
    <HeaderTemplate> 
     <table> 
     <tr> 
      <td></td> 
      <td colspan="2">Group 1</td> 
      <td colspan="2">Group 2</td> 
      <td></td> 
     </tr> 
     <tr> 
      <td>Value 1 Header</td> 
      <td>Value 2 Header</td> 
      <td>Value 3 Header</td> 
      <td>Value 4 Header</td> 
      <td>Value 5 Header</td> 
      <td>Value 6 Header</td> 
     </tr> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr> 
      <td>Value 1</td> 
      <td>Value 2</td> 
      <td>Value 3</td> 
      <td>Value 4</td> 
      <td>Value 5</td> 
      <td>Value 6</td> 
     </tr> 
    </ItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 

所以“值1”只会有一个标题,而“值2”和“值3”将有一个标题以及上面的分组标题。

关于如何在WPF中完成这种类型的任何想法?谢谢。

回答

3

我已经做了在这个WPF DataGrid的使用,下面是示例:

<toolkit:DataGrid x:Name="dgValue" AutoGenerateColumns="False"> 
     <toolkit:DataGrid.Columns> 
      <toolkit:DataGridTemplateColumn> 
       <toolkit:DataGridTemplateColumn.Header> 
        <Grid Width="150"> 
         <Grid.RowDefinitions> 
          <RowDefinition/> 
          <RowDefinition/> 
         </Grid.RowDefinitions> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition/> 
          <ColumnDefinition/> 
         </Grid.ColumnDefinitions> 
         <TextBlock Grid.ColumnSpan="2" HorizontalAlignment="Center" Text="Item"/> 
         <TextBlock Grid.Row="1" Text="SubItem1"/> 
         <TextBlock Grid.Row="1" Grid.Column="1" Text="SubItem2"/> 
        </Grid> 
       </toolkit:DataGridTemplateColumn.Header> 
       <toolkit:DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <Grid Width="150"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition/> 
           <ColumnDefinition/> 
          </Grid.ColumnDefinitions> 
          <TextBlock Text="{Binding SubItem1}" /> 
          <TextBlock Grid.Column="1" Text="{Binding SubItem2}" /> 
         </Grid> 
        </DataTemplate> 
       </toolkit:DataGridTemplateColumn.CellTemplate> 
      </toolkit:DataGridTemplateColumn> 
     </toolkit:DataGrid.Columns> 
    </toolkit:DataGrid> 
+0

看起来不错,但你似乎必须定义列的宽度是多少?我希望(如在ASP.net中)可以使所有列宽都是动态的。如果你离开宽度看起来它可能不正确的阵容呢?或者我读错了吗? – ChrisHDog 2009-12-23 06:29:05

+0

是的,这就是为什么你需要设置宽度 – viky 2009-12-24 10:12:22

+1

有一个类似的答案[在MSDN上的“超级标题”](http://social.msdn.microsoft.com/Forums/en/wpf/thread/1e414159- 70f6-4be3-9be5-56e4f3278366)。 – 2013-01-07 23:26:47

相关问题