JobAssignmentGrid.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Linq;
  3. using System.Windows;
  4. using Comal.Classes;
  5. using InABox.Core;
  6. using InABox.DynamicGrid;
  7. namespace PRSDesktop
  8. {
  9. public class JobAssignmentGrid : DynamicDataGrid<Assignment>
  10. {
  11. public Job Job { get; set; }
  12. public JobAssignmentGrid()
  13. {
  14. RowHeight = 30;
  15. }
  16. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  17. {
  18. base.DoReconfigure(options);
  19. options.AddRange(
  20. DynamicGridOption.SelectColumns,
  21. DynamicGridOption.FilterRows,
  22. DynamicGridOption.ExportData
  23. );
  24. }
  25. protected override bool CanCreateItems()
  26. {
  27. return Job.ID != Guid.Empty;
  28. }
  29. protected override Assignment CreateItem()
  30. {
  31. var result = base.CreateItem();
  32. result.JobLink.ID = Job.ID;
  33. result.JobLink.Synchronise(Job);
  34. return result;
  35. }
  36. protected override void Reload(Filters<Assignment> criteria, Columns<Assignment> columns, ref SortOrder<Assignment>? sort, Action<CoreTable?, Exception?> action)
  37. {
  38. criteria.Add(new Filter<Assignment>(x => x.JobLink.ID).IsEqualTo(Job.ID));
  39. base.Reload(criteria, columns, ref sort, action);
  40. }
  41. }
  42. }