#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
{
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);
public abstract void Reconfigure();
///
/// Add to , and then call
///
///
public void Reconfigure(ReconfigureEvent onReconfigure);
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;
delegate void ReconfigureEvent(FluentList options);
event ReconfigureEvent? OnReconfigure;
void AddVisualFilter(string column, string value, FilterType filtertype = FilterType.Contains);
Button AddButton(string caption, BitmapImage? image, string? tooltip, Func