Back to Devexpress

CustomSummaryEventArgs.SummaryProcess Property

maui-devexpress-dot-maui-dot-datagrid-dot-customsummaryeventargs.md

latest3.9 KB
Original Source

CustomSummaryEventArgs.SummaryProcess Property

Gets a value that indicates the data summary calculation stage.

Namespace : DevExpress.Maui.DataGrid

Assembly : DevExpress.Maui.DataGrid.dll

NuGet Package : DevExpress.Maui.DataGrid

Declaration

csharp
public DataSummaryProcess SummaryProcess { get; }

Property Value

TypeDescription
DataSummaryProcess

The data summary calculation stage.

|

Available values:

NameDescription
Start

Indicates that the process of custom summary calculation is about to be started.

| | Calculate |

Indicates that custom summary calculation is in progress. This means the event is raised for a specific data row that contains the field value used to calculate the processed custom summary.

| | Finalize |

Indicates that the process of custom summary calculation is finished.

|

Remarks

The process of custom summary calculation consists of three stages.

InitializationThe SummaryProcess property is set to DataSummaryProcess.Start and the DataGridView.CustomSummary event is raised once.CalculationThe SummaryProcess property is set to DataSummaryProcess.Calculate and the DataGridView.CustomSummary event occurs multiple times, once for each data row in the grid or group.FinalizationThe SummaryProcess property is set to DataSummaryProcess.Finalize and the DataGridView.CustomSummary event is raised once.

Example

This example uses predefined aggregate functions and custom rule to calculate group and total summaries for grid columns.

  • Set the group summary to display the maximum Total value for each group of records.

  • Set the total summary to calculate the sum of values in the Total column.

  • Set the custom total summary to count the number of orders whose value in the Shipped column is false (to count orders that have not shipped).

  • XAML

xaml
<dxg:DataGridView x:Name="grid" ItemsSource="{Binding Orders}" 
                 CustomSummary="OnCalculateCustomSummary">
    <!-- ... -->
    <dxg:DataGridView.GroupSummaries>
        <dxg:GridColumnSummary FieldName="Total" Type="Max"/>
    </dxg:DataGridView.GroupSummaries>

    <dxg:DataGridView.TotalSummaries>
        <dxg:GridColumnSummary FieldName="Total" Type="Sum" 
                               DisplayFormat="Total: {0:C0}"/>
        <dxg:GridColumnSummary FieldName="Shipped" Type="Custom" 
                               DisplayFormat="Not Shipped: {0}"/>
    </dxg:DataGridView.TotalSummaries>
</dxg:DataGridView>
csharp
int count;
// ...

private void grid_CustomSummary(object sender, DevExpress.Maui.DataGrid.CustomSummaryEventArgs e) {
    if (e.FieldName.ToString() == "Shipped")
        if (e.IsTotalSummary) {
            if (e.SummaryProcess == DevExpress.Maui.Core.DataSummaryProcess.Start) {
                count = 0;
            }
            if (e.SummaryProcess == DevExpress.Maui.Core.DataSummaryProcess.Calculate) {
                if (!(bool)e.Value)
                    count++;
                e.TotalValue = count;
            }
        }
}

See Also

CustomSummaryEventArgs Class

CustomSummaryEventArgs Members

DevExpress.Maui.DataGrid Namespace