wpf datagrid总行
问题描述:
我想在一个wpf数据网格中创建一个总行,如 this之一。 我不知道如何在xaml中创建这样的行。当我滚动其他行时,它应该被冻结。wpf datagrid总行
有人说可以将总项目添加到数据源并为该项目创建一个特殊模板。但是这似乎有点奇怪。
我发现没有工作解决方案。有人有一个想法如何做到这一点?
答
您可以将TextBlock.Text绑定到您的值。要对所有的列都这样做,你可以改变的ContentTemplate您DataGrid标题这样
<DataGrid ...>
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" TextWrapping="Wrap"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Header="Header Text">
</DataGrid.Columns>
</DataGrid>
另外,这样做对,你可以在你的Header
模板使用结合
<TextBlock Text="{Binding}" TextWrapping="Wrap"/>
改变
TextBlock.Text
每列
,然后你的专栏看起来像这样
<DataGridTextColumn
Binding="{Binding Name}"
HeaderTemplate="{StaticResource ColumnHeaderTemplate}"
Header="Header Text"/>
答
我有一个类似的问题,要解决它,我创建了一个船坞面板nd停靠在数据网格顶端。然后,我为每个表格列创建了一个带有文本框的水平堆栈面板,并将它们填入所需的总计,然后停靠在停靠面板的底部。将数据网格ScrollViewer.VerticalScrollBarVisibility设置为auto时,总计行始终在数据网格的底部可见,并且如果数据网格对于其容器而言变大,则会将其包装在滚动容器中(总计行仍可见) 。
您可以扩展数据网格标题。 StackPanel并为其中的总计添加标签或文本块? – Stuart
@Stuart太棒了!谢谢。我没有想到这会很容易,并寻找错误的问题。 –