DailyReportFavouriteGrid.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. ActionColumns.Add(new DynamicImageColumn(PRSDesktop.Resources.delete.AsBitmapImage(), DeleteClick) { Position = DynamicActionColumnPosition.Start });
  16. }
  17. protected override void DoReconfigure(DynamicGridOptions options)
  18. {
  19. options.Clear();
  20. }
  21. public List<AssignmentFavourite> Items { get; set; }
  22. private bool DeleteClick(CoreRow? arg)
  23. {
  24. if (arg == null)
  25. return false;
  26. DeleteItems(arg);
  27. return true;
  28. }
  29. public override void DeleteItems(params CoreRow[] rows)
  30. {
  31. foreach (var row in rows.OrderByDescending(x => x.Index))
  32. {
  33. var item = Items[row.Index];
  34. Items.Remove(item);
  35. }
  36. }
  37. public override AssignmentFavourite LoadItem(CoreRow row)
  38. {
  39. return row.ToObject<AssignmentFavourite>();
  40. }
  41. protected override void Reload(
  42. Filters<AssignmentFavourite> criteria, Columns<AssignmentFavourite> columns, ref SortOrder<AssignmentFavourite>? sort,
  43. CancellationToken token, Action<CoreTable?, Exception?> action)
  44. {
  45. var result = new CoreTable();
  46. result.LoadColumns(typeof(AssignmentFavourite));
  47. result.LoadRows(Items);
  48. action.Invoke(result, null);
  49. }
  50. public override void SaveItem(AssignmentFavourite item)
  51. {
  52. }
  53. }