IDynamicGrid.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #define scrolling
  2. //#define newgrid
  3. using System;
  4. using System.Linq.Expressions;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Media.Imaging;
  8. using InABox.Core;
  9. namespace InABox.DynamicGrid
  10. {
  11. public enum DynamicGridButtonPosition
  12. {
  13. Left,
  14. Right
  15. }
  16. public interface IDynamicGrid
  17. {
  18. FluentList<DynamicGridOption> Options { get; }
  19. Thickness Margin { get; set; }
  20. DynamicGridColumns MasterColumns { get; }
  21. DynamicGridColumns VisibleColumns { get; }
  22. CoreTable Data { get; set; }
  23. CoreRow[] SelectedRows { get; set; }
  24. double RowHeight { get; set; }
  25. double HeaderHeight { get; set; }
  26. double FontSize { get; set; }
  27. void Refresh(bool columns, bool data);
  28. void InitialiseEditorForm(IDynamicEditorForm editor, object[] items, Func<Type, CoreTable>? pageDataHandler = null, bool preloadPages = false);
  29. bool EditItems(object[] items, Func<Type, CoreTable>? PageDataHandler = null, bool PreloadPages = false);
  30. //bool DirectEdit(CoreTable data);
  31. event OnFilterRecord OnFilterRecord;
  32. event OnCreateItem OnCreateItem;
  33. event OnDoubleClick? OnDoubleClick;
  34. void AddVisualFilter(string column, string value);
  35. Button AddButton(string caption, BitmapImage? image, string? tooltip, Func<Button, CoreRow[], bool> action, DynamicGridButtonPosition position = DynamicGridButtonPosition.Left);
  36. event OnDefineFilter OnDefineFilter;
  37. event OnPrintData OnPrintData;
  38. event OnCustomiseColumns OnCustomiseColumns;
  39. event BeforeRefreshEventHandler BeforeRefresh;
  40. event AfterRefreshEventHandler AfterRefresh;
  41. event EntitySaveEvent? OnAfterSave;
  42. event EntitySaveEvent? OnBeforeSave;
  43. int DesiredWidth();
  44. void ConfigureColumns(DynamicGridColumns columns /*, bool dolookups */);
  45. void AddHiddenColumn(string column);
  46. void UpdateRow<TType>(CoreRow row, string column, TType value, bool refresh = true);
  47. void UpdateRow<T, TType>(CoreRow row, Expression<Func<T, TType>> column, TType value, bool refresh = true);
  48. }
  49. }