#define scrolling //#define newgrid using System; using System.Linq.Expressions; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Imaging; using InABox.Core; using Syncfusion.Data; namespace InABox.DynamicGrid { public enum DynamicGridButtonPosition { Left, Right } public interface IDynamicGrid { FluentList Options { get; } Thickness Margin { get; set; } DynamicGridColumns MasterColumns { get; } DynamicGridColumns VisibleColumns { get; } CoreTable Data { get; set; } CoreRow[] SelectedRows { get; set; } double RowHeight { get; set; } double HeaderHeight { get; set; } double FontSize { get; set; } void Refresh(bool columns, bool data); void InitialiseEditorForm(IDynamicEditorForm editor, object[] items, Func? pageDataHandler = null, bool preloadPages = false); bool EditItems(object[] items, Func? PageDataHandler = null, bool PreloadPages = false); //bool DirectEdit(CoreTable data); event OnFilterRecord OnFilterRecord; event OnCreateItem OnCreateItem; event OnDoubleClick? OnDoubleClick; void AddVisualFilter(string column, string value, FilterType filtertype = FilterType.Contains); Button AddButton(string caption, BitmapImage? image, string? tooltip, Func action, DynamicGridButtonPosition position = DynamicGridButtonPosition.Left); event OnDefineFilter OnDefineFilter; event OnPrintData OnPrintData; event OnCustomiseColumns OnCustomiseColumns; event BeforeRefreshEventHandler BeforeRefresh; event AfterRefreshEventHandler AfterRefresh; event EntitySaveEvent? OnAfterSave; event EntitySaveEvent? OnBeforeSave; int DesiredWidth(); void ConfigureColumns(DynamicGridColumns columns /*, bool dolookups */); void AddHiddenColumn(string column); void UpdateRow(CoreRow row, string column, TType value, bool refresh = true); void UpdateRow(CoreRow row, Expression> column, TType value, bool refresh = true); } }