DynamicGridDoubleColumn.cs 1.6 KB

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