123456789101112131415161718192021222324252627282930313233343536 |
- using System.Linq;
- using System.Windows;
- using Syncfusion.Data;
- using Syncfusion.UI.Xaml.Grid;
- using Syncfusion.UI.Xaml.Grid.Cells;
- namespace InABox.DynamicGrid;
- public class DynamicGridAggregateRenderer : GridTableSummaryCellRenderer
- {
- public override void OnUpdateEditBinding(DataColumnBase dataColumn, GridTableSummaryCell element, object dataContext)
- {
- if (DataGrid == null)
- return;
- var record = dataContext as SummaryRecordEntry;
- if (record == null || record.SummaryRow == null)
- return;
- foreach (var summaryColumn in record.SummaryRow.SummaryColumns)
- {
- if (!summaryColumn.MappingName.Equals(dataColumn.GridColumn.MappingName))
- continue;
-
- var format = summaryColumn.Format.Replace("{", "").Replace("}", "").Split(':');
- var cmd = format.FirstOrDefault();
- var fmt = format.Length > 1 ? string.Join(":", format.Skip(1)) : "";
-
- var agg = SummaryCreator.GetSummaryAggregate(summaryColumn, DataGrid.View) as IDynamicGridSummaryAggregate;
- if (agg != null)
- element.Content = agg.Format(cmd, fmt);
- else
- base.OnUpdateEditBinding(dataColumn, element, dataContext);
- }
- }
- }
|