【发布时间】:2011-05-23 21:02:41
【问题描述】:
我有一个非常奇怪的网格的设计要求......看起来像这样:
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>
【问题讨论】: