Hi
I am creating AggregateFunctions code-behind (see example code below). The CountFunction works but when I include a SumFunction the program crashes with the following error:
No generic method 'Sum' on type
'System.Linq.Enumerable' is compatible with the supplied type arguments. No type argiuments should be provided if the method is non-generic.
I can only see two possible explanations:
1. I am not setting the AggregateFunction properties correctly.
2. Setting Grid.ItemsSource to ObservableCollection<dynamic>
This collections data is correct since is working correctly when not using AggregateFunctions.
Is a dynamically created class a problem? The actual class properties are not dynamic but the actual system data types.
I am also using Grouping and it also works correctly. To make sure that grouping was not the problem I eliminated the grouping but the program still crashes.
---- The following is being looped ----
GridViewDataColumn dataCol = new GridViewDataColumn();
dataCol.DataMemberBinding = new Binding(column.ColumnName);
dataCol.Header = column.ColumnName;
dataCol.UniqueName = column.ColumnName;
dataCol.DataType = Type.GetType(column.SystemDataType);
dataCol.FilterMemberType = Type.GetType(column.SystemDataType);
--- Hard coded to test AggregateFunctions
if (dataCol.UniqueName == "Uid")
{
SumFunction sumFunction = new SumFunction();
sumFunction.SourceField = "Uid";
sumFunction.ResultFormatString = "Tot Uid: {0}";
sumFunction.SourceFieldType = Type.GetType(column.SystemDataType); // System.Int32
dataCol.AggregateFunctions.Add(sumFunction);
}
--- End hard coding ---
grid.Columns.Add(dataCol);
---- End of Loop ----
grid.ShowColumnFooters = true;
grid.ShowGroupFooters = true;
grid.ItemsSource = new QueryableCollectionView(clientData.Result);
Crashed at this point setting the ItemsSource.
Before putting in the SumFunction code everything was working correctly!
clientData.Result is ObservableCollection<dynamic>
====================================
If you don't have the answer could you provide the code-behind to create AggregrateFunctions. The following xaml snippet is from the WPF example Aggregates which is under the Grouping and Aggregates category. In looking at numerous past posts of this problem I think it would be most helpful to many developers to take the aggregate example and define the grid properties in code-behind. I would like to see a AggregateFunctions example that works using code-behind.
Thanks
Rich
<telerik:GridViewDataColumn Header="Freight"
DataMemberBinding="{Binding Freight, StringFormat=c}">
<telerik:GridViewDataColumn.AggregateFunctions>
<telerik:SumFunction SourceField="Freight" ResultFormatString="Total: {0:c}" />
</telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>