CustomSummaryEventArgs.TotalValue Property
Gets or sets the summary value.
Namespace: DevExpress.Maui.DataGrid
Assembly: DevExpress.Maui.DataGrid.dll
NuGet Package: DevExpress.Maui.DataGrid
Declaration
public object TotalValue { get; set; }
Property Value
Type | Description |
---|---|
System.Object | An object that specifies the summary value. |
Remarks
TotalValue
is the summary value that accumulates the custom calculated value. Note that this property should be initialized before the summary calculation process starts. To identify the status of the custom summary calculation, use the CustomSummaryEventArgs.SummaryProcess property. When performing calculations, you need to refresh the TotalValue
property for it to be updated with the new values.
You can also modify the TotalValue
property value when finalizing the calculation. In this case, the SummaryProcess property returns the Finalize value.
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).
<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>
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;
}
}
}