12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- 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);
- element.HorizontalContentAlignment = dataColumn.GridColumn.TextAlignment == TextAlignment.Left
- ? HorizontalAlignment.Left
- : dataColumn.GridColumn.TextAlignment == TextAlignment.Center
- ? HorizontalAlignment.Center
- : HorizontalAlignment.Right;
- }
- }
- }
|