2017-06-05 118 views
-2

我想在一個wpf數據網格中創建一個總行,如 this之一。 我不知道如何在xaml中創建這樣的行。當我滾動其他行時,它應該被凍結。wpf datagrid總行

有人說可以將總項目添加到數據源併爲該項目創建一個特殊模板。但是這似乎有點奇怪。

我發現沒有工作解決方案。有人有一個想法如何做到這一點?

+0

您可以擴展數據網格標題。 StackPanel併爲其中的總計添加標籤或文本塊? – Stuart

+0

@Stuart太棒了!謝謝。我沒有想到這會很容易,並尋找錯誤的問題。 –

回答

0

您可以將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"/> 
0

我有一個類似的問題,要解決它,我創建了一個船塢面板nd停靠在數據網格頂端。然後,我爲每個表格列創建了一個帶有文本框的水平堆棧面板,並將它們填入所需的總計,然後停靠在停靠面板的底部。將數據網格ScrollViewer.VerticalScrollBarVisibility設置爲auto時,總計行始終在數據網格的底部可見,並且如果數據網格對於其容器而言變大,則會將其包裝在滾動容器中(總計行仍可見) 。