0
我有一个非常奇怪的网格设计要求......看起来是这样的:WPF DataGrid的多行标头
grid http://img219.imageshack.us/img219/3444/columns.png
我需要能够进行排序两个头行...所以如果他们点击“描述”,它按描述排序。如果他们点击“状态”,则按状态排序。在列标题上使用模板,我可以实现外观,但我似乎无法找到一种方法来让每个单元作为独特的标题工作。我该如何去做这件事?
编辑:要创建的列标题,我这样做:
<StackPanel Orientation="Vertical" >
<Border Margin=".5" Background="{StaticResource DarkBlueBackground}" >
<Button Margin="6" Style="{StaticResource StaticLinkButton}"">
<TextBlock HorizontalAlignment="Left" Text="Part Number" MinWidth="40" />
</Button>
</Border>
<Border Margin=".5" Background="{StaticResource LightBlueBackground}" MinWidth="120">
<Button Margin="6" Style="{StaticResource StaticLinkButton}" Content="Part Type"/>
</Border>
</StackPanel>
,它适用于大部分。问题是,当我有一个特别长的数据项(比如一个很长的“零件类型”)时,它伸出了列,但是我的“零件类型”标题边框没有伸展。我尝试使用网格而不是堆叠面板,但使用相同的结果。是否有一种相对简单的方法可以将标题中的边框/按钮/文本块伸展到列的整个宽度?每个请求
编辑2
显示标题模板代码:
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" >
<StackPanel Orientation="Horizontal">
<Border Margin=".5" >
<Button Margin="6" Style="{StaticResource StaticLinkButton}" >
<TextBlock Text="Qty OH" />
</Button>
</Border>
<Border Margin=".5" >
<Button Margin="6" Style="{StaticResource StaticLinkButton}" >
<TextBlock Text="Ord Qty" />
</Button>
</Border>
<Border Margin=".5" >
<Button Margin="6" Style="{StaticResource StaticLinkButton}" >
<TextBlock Text="Ret Qty" />
</Button>
</Border>
<Border Margin=".5" >
<Button Margin="6" Style="{StaticResource StaticLinkButton}" >
<TextBlock Text="Rec Qty" />
</Button>
</Border>
<Border Margin=".5" >
<Button Margin="6" Style="{StaticResource StaticLinkButton}" KeyboardNavigation.IsTabStop="False" >
<TextBlock MinWidth="90" MinHeight="27" Text="Quantity" />
</Button>
</Border>
</StackPanel>
<Border Margin=".5" Background="{StaticResource LightBlueBackground}">
<Button ="Part Type" KeyboardNavigation.IsTabStop="False"/>
</Border>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
这就行了,非常感谢。 – drowned 2011-05-24 20:25:24
不客气,很高兴帮助:) – 2011-05-24 20:30:20