DynamicGridCurrencyColumn.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System.Collections.Generic;
  2. using System.Windows.Media;
  3. using InABox.Core;
  4. using Syncfusion.Data;
  5. using Syncfusion.UI.Xaml.Grid;
  6. using Syncfusion.UI.Xaml.TreeGrid;
  7. namespace InABox.DynamicGrid;
  8. public class DynamicGridCurrencyColumn<TEntity> : DynamicGridNumericColumn<TEntity, CurrencyEditor, GridCurrencyColumn, TreeGridCurrencyColumn> where TEntity : BaseObject
  9. {
  10. protected override void Configure(GridCurrencyColumn column, CurrencyEditor editor)
  11. {
  12. column.CurrencyDecimalDigits = GetDigits(editor);
  13. column.CurrencyGroupSeparator = ",";
  14. column.CurrencyGroupSizes = new Int32Collection(new[] { 3, 3, 3, 3, 3, 3 });
  15. }
  16. protected override void Configure(TreeGridCurrencyColumn column, CurrencyEditor editor)
  17. {
  18. column.CurrencyDecimalDigits = GetDigits(editor);
  19. column.CurrencyGroupSeparator = ",";
  20. column.CurrencyGroupSizes = new Int32Collection(new[] { 3, 3, 3, 3, 3, 3 });
  21. }
  22. public override GridSummaryColumn? Summary()
  23. {
  24. if (Definition == null || Definition.Editor.Summary == Core.Summary.None)
  25. return null;
  26. var format = Definition.Editor.Summary == Core.Summary.Count
  27. ? "N0"
  28. : $"C{Editor!.Digits}";
  29. var summary = new GridSummaryColumn
  30. {
  31. Name = MappingName,
  32. Format = "{" + (Definition.Editor.Summary == Core.Summary.Sum ? "Sum" : "Count") + ":" + format + "}",
  33. MappingName = MappingName,
  34. SummaryType = Definition.Editor.Summary == Core.Summary.Sum
  35. ? SummaryType.DoubleAggregate
  36. : SummaryType.CountAggregate,
  37. CustomAggregate = new DynamicGridDoubleAggregate()
  38. };
  39. return summary;
  40. }
  41. public DynamicGridCurrencyColumn(DynamicGridColumn definition) : base(definition)
  42. {
  43. }
  44. }