Calculate Summary For Selected Rows In Winui Sfdatagrid

Sample date Updated on May 19, 2026
caption-summary datagrid group-summary selected-rows summaries summary table-summary winui

The WinUI DataGrid (SfDataGrid) calculates the summaries for all records by default. You can calculate the summaries for selected records by using the SfDataGrid.SummaryCalculationUnit or GridSummaryRow.CalculationUnit property. This is applicable for all type of summary rows such as table, caption and group summary.

XAML

<dataGrid:SfDataGrid x:Name="sfDataGrid" 
                             Grid.Column="0" Grid.Row="0"
                             DataContext="{StaticResource salesViewModel}"
                             ItemsSource="{Binding YearlySales}"
                             SelectionMode="Multiple"
                             GridLinesVisibility="Both"
                             AutoGenerateColumns="False"
                             AllowResizingColumns="True"
                             AutoExpandGroups="True"
                             ColumnWidthMode="Auto">
            <dataGrid:SfDataGrid.GroupColumnDescriptions>
                <dataGrid:GroupColumnDescription ColumnName="Year" />
            </dataGrid:SfDataGrid.GroupColumnDescriptions>

            <dataGrid:SfDataGrid.Columns>
                <dataGrid:GridTextColumn MappingName="Name" />
                <dataGrid:GridNumericColumn MappingName="QS1" NumberFormatter="{Binding SystemCurrency,Source={StaticResource salesViewModel}}" HeaderText="Sales in Q1" TextAlignment="Right" />
                <dataGrid:GridNumericColumn MappingName="QS2" NumberFormatter="{Binding SystemCurrency,Source={StaticResource salesViewModel}}" HeaderText="Sales in Q2" TextAlignment="Right" />
                <dataGrid:GridNumericColumn MappingName="QS3" NumberFormatter="{Binding SystemCurrency,Source={StaticResource salesViewModel}}" HeaderText="Sales in Q3" TextAlignment="Right" />
                <dataGrid:GridNumericColumn MappingName="QS4" NumberFormatter="{Binding SystemCurrency,Source={StaticResource salesViewModel}}" HeaderText="Sales in Q4" TextAlignment="Right" />
                <dataGrid:GridNumericColumn MappingName="Total" NumberFormatter="{Binding SystemCurrency,Source={StaticResource salesViewModel}}" HeaderText="Total Sales in Year" TextAlignment="Right" Width="120" />
                <dataGrid:GridTextColumn MappingName="Year" IsHidden="True"/>

            </dataGrid:SfDataGrid.Columns>

            <dataGrid:SfDataGrid.CaptionSummaryRow>
                <dataGrid:GridSummaryRow
                                    Title="Sales in {ColumnName} : {Key}"
                                    ShowSummaryInRow="False"
                                    TitleColumnCount="1">
                    <dataGrid:GridSummaryRow.SummaryColumns>
                        <dataGrid:GridSummaryColumn
                                            Name="SQS1"
                                            Format="'{Sum:c}'"
                                            MappingName="QS1"
                                            SummaryType="DoubleAggregate" />
                        <dataGrid:GridSummaryColumn
                                            Name="SQS2"
                                            Format="'{Sum:c}'"
                                            MappingName="QS2"
                                            SummaryType="DoubleAggregate" />
                        <dataGrid:GridSummaryColumn
                                            Name="SQS3"
                                            Format="'{Sum:c}'"
                                            MappingName="QS3"
                                            SummaryType="DoubleAggregate" />
                        <dataGrid:GridSummaryColumn
                                            Name="SQS4"
                                            Format="'{Sum:c}'"
                                            MappingName="QS4"
                                            SummaryType="DoubleAggregate" />
                    </dataGrid:GridSummaryRow.SummaryColumns>
                </dataGrid:GridSummaryRow>
            </dataGrid:SfDataGrid.CaptionSummaryRow>

            <dataGrid:SfDataGrid.GroupSummaryRows>
                <dataGrid:GridSummaryRow Title="Total Sales in Year for {ProductCount} Products : {YearSales}" ShowSummaryInRow="True">
                    <dataGrid:GridSummaryRow.SummaryColumns>
                        <dataGrid:GridSummaryColumn
                                            Name="YearSales"
                                            Format="'{Sum:c}'"
                                            MappingName="Total"
                                            SummaryType="DoubleAggregate" />
                        <dataGrid:GridSummaryColumn
                                            Name="ProductCount"
                                            Format="'{Count:d}'"
                                            MappingName="Name"
                                            SummaryType="CountAggregate" />
                    </dataGrid:GridSummaryRow.SummaryColumns>
                </dataGrid:GridSummaryRow>
            </dataGrid:SfDataGrid.GroupSummaryRows>

            <dataGrid:SfDataGrid.TableSummaryRows>
                <dataGrid:GridTableSummaryRow
                                    Title="Total Sales :"
                                    Position="Top"
                                    ShowSummaryInRow="False"
                                    TitleColumnCount="1">
                    <dataGrid:GridTableSummaryRow.SummaryColumns>
                        <dataGrid:GridSummaryColumn
                                            Name="TQS1"
                                            Format="'{Sum:c}'"
                                            MappingName="QS1"
                                            SummaryType="DoubleAggregate" />
                        <dataGrid:GridSummaryColumn
                                            Name="TQS2"
                                            Format="'{Sum:c}'"
                                            MappingName="QS2"
                                            SummaryType="DoubleAggregate" />
                        <dataGrid:GridSummaryColumn
                                            Name="TQS3"
                                            Format="'{Sum:c}'"
                                            MappingName="QS3"
                                            SummaryType="DoubleAggregate" />
                        <dataGrid:GridSummaryColumn
                                            Name="TQS4"
                                            Format="'{Sum:c}'"
                                            MappingName="QS4"
                                            SummaryType="DoubleAggregate" />
                    </dataGrid:GridTableSummaryRow.SummaryColumns>
                </dataGrid:GridTableSummaryRow>
                <dataGrid:GridSummaryRow Title="Total Sales : {TotalSales}"
                                         ShowSummaryInRow="True">
                    <dataGrid:GridSummaryRow.SummaryColumns>
                        <dataGrid:GridSummaryColumn
                                            Name="TotalSales"
                                            Format="'{Sum:c}'"
                                            MappingName="Total"
                                            SummaryType="DoubleAggregate" />
                    </dataGrid:GridSummaryRow.SummaryColumns>
                </dataGrid:GridSummaryRow>
            </dataGrid:SfDataGrid.TableSummaryRows>
        </dataGrid:SfDataGrid>

        <StackPanel VerticalAlignment="Top" Width="200" HorizontalAlignment="Center" Grid.Column="1" Grid.Row="0">
            <ComboBox x:Name="summaryUnitComboBox" Margin="20" Header="SummaryCalculationUnit" HorizontalAlignment="Center" SelectionChanged="OnComboBoSexlectionChanged">
                <ComboBoxItem>All Rows</ComboBoxItem>
                <ComboBoxItem IsSelected="True">Selected Rows</ComboBoxItem>
                <ComboBoxItem>Mixed</ComboBoxItem>
            </ComboBox>
        </StackPanel>

C#

private void OnComboBoSexlectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (summaryUnitComboBox.SelectedIndex == 0)
                sfDataGrid.SummaryCalculationUnit = Syncfusion.UI.Xaml.Data.SummaryCalculationUnit.AllRows;
            else if (summaryUnitComboBox.SelectedIndex == 1)
                sfDataGrid.SummaryCalculationUnit = Syncfusion.UI.Xaml.Data.SummaryCalculationUnit.SelectedRows;
            else
                sfDataGrid.SummaryCalculationUnit = Syncfusion.UI.Xaml.Data.SummaryCalculationUnit.Mixed;
        }

Note: The GridSummaryRow.CalculationUnit takes higher priority than the SfDataGrid.SummaryCalculationUnit.

Limitation

SummaryCalculationUnit.SelectedRows or SummaryCalculationUnit.Mixed will not be considered for cell selection.

Documentation

Take a moment to peruse the WinUI SfDataGrid Summaries, where you can find about summaries and it's types with examples.

Up arrow