RequisitionItemProductSelectionGrid.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Comal.Classes;
  2. using InABox.Core;
  3. using InABox.DynamicGrid;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace PRSDesktop.Panels.Requisitions;
  10. public class RequisitionItemProductSelectionGrid : DynamicItemsListGrid<Product>, ISpecificGrid
  11. {
  12. public Func<List<Product>>? ProductsFunction { get; set; }
  13. protected override void Init()
  14. {
  15. base.Init();
  16. HiddenColumns.Add(x => x.ID);
  17. }
  18. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  19. {
  20. base.DoReconfigure(options);
  21. options.Clear().Add(DynamicGridOption.FilterRows);
  22. }
  23. protected override void Reload(Filters<Product> criteria, Columns<Product> columns, ref SortOrder<Product>? sort, Action<CoreTable?, Exception?> action)
  24. {
  25. Items = ProductsFunction?.Invoke() ?? new List<Product>();
  26. base.Reload(criteria, columns, ref sort, action);
  27. }
  28. protected override DynamicGridColumns LoadColumns()
  29. {
  30. var columns = new DynamicGridColumns();
  31. columns.Add<Product, string>(x => x.Code, 120, "Code", "", Alignment.MiddleCenter);
  32. columns.Add<Product, string>(x => x.Name, 0, "Name", "", Alignment.MiddleLeft);
  33. return columns;
  34. }
  35. }