DailyReportFavouriteGrid.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading;
  5. using System.Windows.Media.Imaging;
  6. using Comal.Classes;
  7. using InABox.Core;
  8. using InABox.DynamicGrid;
  9. using InABox.WPF;
  10. namespace PRSDesktop;
  11. public class DailyReportFavouriteGrid : DynamicGrid<AssignmentFavourite>
  12. {
  13. protected override void Init()
  14. {
  15. base.Init();
  16. ActionColumns.Add(new DynamicImageColumn(InABox.Wpf.Resources.delete.AsBitmapImage(), DeleteClick) { Position = DynamicActionColumnPosition.Start });
  17. }
  18. protected override void DoReconfigure(DynamicGridOptions options)
  19. {
  20. options.Clear();
  21. }
  22. public List<AssignmentFavourite> Items { get; set; }
  23. private bool DeleteClick(CoreRow? arg)
  24. {
  25. if (arg == null)
  26. return false;
  27. DeleteItems(arg);
  28. return true;
  29. }
  30. public override void DeleteItems(params CoreRow[] rows)
  31. {
  32. foreach (var row in rows.OrderByDescending(x => x.Index))
  33. {
  34. var item = Items[row.Index];
  35. Items.Remove(item);
  36. }
  37. }
  38. public override AssignmentFavourite LoadItem(CoreRow row)
  39. {
  40. return row.ToObject<AssignmentFavourite>();
  41. }
  42. protected override void Reload(
  43. Filters<AssignmentFavourite> criteria, Columns<AssignmentFavourite> columns, ref SortOrder<AssignmentFavourite>? sort,
  44. CancellationToken token, Action<CoreTable?, Exception?> action)
  45. {
  46. var result = new CoreTable();
  47. result.LoadColumns(typeof(AssignmentFavourite));
  48. result.LoadRows(Items);
  49. action.Invoke(result, null);
  50. }
  51. public override void SaveItem(AssignmentFavourite item)
  52. {
  53. }
  54. }