我希望通过在GridView中有一个跨越几列的附加标题行来“分组”WPF GridView中的某些列。
在带有转发器的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>
所以“Value 1”只有一个标题,而“Value 2”和“Value 3”会有一个标题和一个分组标题。
有关如何在WPF中执行此类操作的任何想法?感谢。
答案 0 :(得分: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>