我想在wpf数据网格中创建一个总行 this一个。 我不知道如何在xaml中创建这样的行。当我滚动其他行时,它应该被冻结。
有人说可以将总项添加到数据源并为该项创建特殊模板。但这似乎有点奇怪。
我发现没有可行的解决方案。有人知道怎么做吗?
答案 0 :(得分:0)
您可以将TextBlock.Text绑定到您的值。要对所有列执行此操作,您可以像这样更改DataGrid标头的ContentTemplate
<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>
或者,要为每个列执行此操作,您可以在TextBlock.Text
模板中更改Header
以使用绑定
<TextBlock Text="{Binding}" TextWrapping="Wrap"/>
然后你的专栏就像这样
<DataGridTextColumn
Binding="{Binding Name}"
HeaderTemplate="{StaticResource ColumnHeaderTemplate}"
Header="Header Text"/>
答案 1 :(得分:0)
我遇到了类似的问题,为了解决这个问题,我创建了一个停靠面板,并将数据网格停靠在顶部。然后,我创建了一个水平堆栈面板,每个表列都有一个文本框,并用所需的总数填充它们,然后将其停靠在停靠面板的底部。将数据网格ScrollViewer.VerticalScrollBarVisibility设置为auto,总数行始终显示在数据网格的底部,如果数据网格对于其容器变大,则将其包装在滚动容器中(总计行仍然可见)