DynamicGridIntegerColumn.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Windows;
  2. using InABox.Core;
  3. using Syncfusion.Data;
  4. using Syncfusion.UI.Xaml.Grid;
  5. using Syncfusion.UI.Xaml.Grid.Cells;
  6. namespace InABox.DynamicGrid;
  7. public class DynamicGridIntegerColumn<TEntity> : DynamicGridNumericColumn<TEntity, IntegerEditor, GridNumericColumn> where TEntity : BaseObject
  8. {
  9. protected override void Configure(GridNumericColumn column, IntegerEditor editor)
  10. {
  11. column.NumberGroupSeparator = "";
  12. column.NumberDecimalDigits = 0;
  13. }
  14. public override int Digits => Column.NumberDecimalDigits;
  15. public override GridSummaryColumn? Summary()
  16. {
  17. if (Definition == null || Definition.Editor.Summary == Core.Summary.None)
  18. return null;
  19. var format = Definition.Editor.Summary == Core.Summary.Count
  20. ? "N0"
  21. : $"N{Digits}";
  22. var summary = new GridSummaryColumn
  23. {
  24. Name = MappingName,
  25. Format = "{" + (Definition.Editor.Summary == Core.Summary.Sum ? "Sum" : "Count") + ":" + format + "}",
  26. MappingName = MappingName,
  27. SummaryType = Definition.Editor.Summary == Core.Summary.Sum
  28. ? SummaryType.Int32Aggregate
  29. : SummaryType.CountAggregate,
  30. CustomAggregate = new DynamicGridIntegerAggregate()
  31. };
  32. return summary;
  33. }
  34. public DynamicGridIntegerColumn(DynamicGridColumn definition) : base(definition)
  35. {
  36. }
  37. }