wpf datagrid总行

时间:2017-06-05 11:14:13

标签: c# wpf xaml datagrid

我想在wpf数据网格中创建一个总行 this一个。 我不知道如何在xaml中创建这样的行。当我滚动其他行时,它应该被冻结。

有人说可以将总项添加到数据源并为该项创建特殊模板。但这似乎有点奇怪。

我发现没有可行的解决方案。有人知道怎么做吗?

2 个答案:

答案 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,总数行始终显示在数据网格的底部,如果数据网格对于其容器变大,则将其包装在滚动容器中(总计行仍然可见)