SupplierContactGrid.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using System.Windows;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.DynamicGrid;
  6. namespace PRSDesktop
  7. {
  8. public class SupplierContactGrid : DynamicDataGrid<SupplierContact>, ISupplierGrid
  9. {
  10. public SupplierContactGrid()
  11. {
  12. ParentID = CoreUtils.FullGuid;
  13. Options.AddRange(
  14. DynamicGridOption.AddRows,
  15. DynamicGridOption.EditRows,
  16. DynamicGridOption.SelectColumns,
  17. DynamicGridOption.DeleteRows
  18. );
  19. }
  20. public Guid ParentID { get; set; }
  21. protected override void Reload(Filters<SupplierContact> criteria, Columns<SupplierContact> columns, ref SortOrder<SupplierContact> sort,
  22. Action<CoreTable, Exception> action)
  23. {
  24. criteria.Add(new Filter<SupplierContact>(x => x.Supplier).LinkValid(ParentID));
  25. base.Reload(criteria, columns, ref sort, action);
  26. }
  27. protected override SupplierContact CreateItem()
  28. {
  29. var result = base.CreateItem();
  30. result.Supplier.ID = ParentID;
  31. return result;
  32. }
  33. protected override BaseEditor? GetEditor(object item, DynamicGridColumn column)
  34. {
  35. if (column.ColumnName.Equals("Supplier.ID"))
  36. return new NullEditor();
  37. return base.GetEditor(item, column);
  38. }
  39. protected override void DoAdd(bool OpenEditorOnDirectEdit = false)
  40. {
  41. if (ParentID == Guid.Empty)
  42. MessageBox.Show("Please select a Supplier first!");
  43. else
  44. base.DoAdd();
  45. }
  46. }
  47. }