There are 5 build-in aggregate functions that our Silverlight DataGrid supports (Max, Min, Avg, Sum and Count), and an ability to define custom ones.
Using build-in Summary Items
<DevExpress:AgDataGrid>
<DevExpress:AgDataGrid.Totals>
<DevExpress:AgDataGridSummaryItem FieldName="Points" SummaryType="Average"/>
<DevExpress:AgDataGridSummaryItem FieldName="Points" SummaryType="Max"/>
<DevExpress:AgDataGridSummaryItem FieldName="Points" SummaryType="Min"/>
<DevExpress:AgDataGridSummaryItem FieldName="Points" SummaryType="Count"/>
<DevExpress:AgDataGridSummaryItem FieldName="Points" SummaryType="Sum"/>
</DevExpress:AgDataGrid.Totals>
</DevExpress>
Calculating Custom Summary
To calculate custom summary, we need to add an AgDataGridSummaryItem with SummaryType of "Custom" and use the AgDataGrid.CustomSummary event.
<DevExpress:AgDataGrid CustomSummary="myGrid_CustomSummary">
<DevExpress:AgDataGrid.Totals>
<DevExpress:AgDataGridSummaryItem FieldName="Points" SummaryType="Custom"
Title="Sum Of Even Rows"/>
</DevExpress:AgDataGrid.Totals>
</DevExpress>
private void myGrid_CustomSummary(object sender, DevExpress.Windows.Data.CustomSummaryEventArgs e) {
if (e.SummaryProcess == CustomSummaryProcess.Start) {
int rowHandle = 0;
int sumOfEvenRows = 0;
int i = 1;
while (myGrid.IsValidRowHandle(rowHandle)) {
Item item = (Item)myGrid.GetDataRow(rowHandle);
if ((i % 2) == 0){
sumOfEvenRows += item.Points;
}
rowHandle++;
i++;
}
e.TotalValue = sumOfEvenRows;
e.TotalValueReady = true;
}
}
public class MyRowItem {
public int Points { get; set; }
}
All we are doing here is going through every row in our data source and summing up the Points for even rows.
Previous: Silverlight DataGrid - Where are my Facebook friends?
Cheers,
Azret