DynamicGridIntegerColumn.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. using Syncfusion.UI.Xaml.TreeGrid;
  7. namespace InABox.DynamicGrid;
  8. public class DynamicGridIntegerColumn<TEntity> : DynamicGridNumericColumn<TEntity, IntegerEditor, GridNumericColumn, TreeGridNumericColumn> where TEntity : BaseObject
  9. {
  10. protected override void Configure(GridNumericColumn column, IntegerEditor editor)
  11. {
  12. column.NumberGroupSeparator = "";
  13. column.NumberDecimalDigits = 0;
  14. }
  15. protected override void Configure(TreeGridNumericColumn column, IntegerEditor editor)
  16. {
  17. column.NumberGroupSeparator = "";
  18. column.NumberDecimalDigits = 0;
  19. }
  20. public override GridSummaryColumn? Summary()
  21. {
  22. if (Definition == null || Definition.Editor.Summary == Core.Summary.None)
  23. return null;
  24. var format = Definition.Editor.Summary == Core.Summary.Count
  25. ? "N0"
  26. : $"N{Editor!.Digits}";
  27. var summary = new GridSummaryColumn
  28. {
  29. Name = MappingName,
  30. Format = "{" + (Definition.Editor.Summary == Core.Summary.Sum ? "Sum" : "Count") + ":" + format + "}",
  31. MappingName = MappingName,
  32. SummaryType = Definition.Editor.Summary == Core.Summary.Sum
  33. ? SummaryType.Int32Aggregate
  34. : SummaryType.CountAggregate,
  35. CustomAggregate = new DynamicGridIntegerAggregate()
  36. };
  37. return summary;
  38. }
  39. public DynamicGridIntegerColumn(DynamicGridColumn definition) : base(definition)
  40. {
  41. }
  42. }