| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | #define scrolling//#define newgridusing System;using System.Collections.Generic;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);        void InitialiseEditorForm(IDynamicEditorForm editor, object[] items, Func<Type, CoreTable>? pageDataHandler = null, bool preloadPages = false);        bool EditItems(object[] items, Func<Type, CoreTable?>? PageDataHandler = null, bool PreloadPages = false);        //bool DirectEdit(CoreTable data);        event OnFilterRecord OnFilterRecord;        event OnCreateItem OnCreateItem;        event OnDoubleClick? OnDoubleClick;        delegate void ReconfigureEvent(FluentList<DynamicGridOption> options);        event ReconfigureEvent? OnReconfigure;        public abstract void Reconfigure();        /// <summary>        /// Add <paramref name="onReconfigure"/> to <see cref="OnReconfigure"/>, and then call <see cref="Reconfigure"/>.        /// </summary>        /// <remarks>        /// Probably should only be called once per grid, otherwise there will be multiple event handlers bound.<br/>        /// If you want to reconfigure without specifiying        /// a new reconfigure event, use <see cref="Reconfigure"/>.        /// </remarks>        /// <param name="onReconfigure"></param>        public void Reconfigure(ReconfigureEvent onReconfigure);        public bool HasOption(DynamicGridOption option);        void AddVisualFilter(string column, string value, FilterType filtertype = FilterType.Contains);        Button AddButton(string? caption, BitmapImage? image, string? tooltip, Func<Button, CoreRow[], bool> action, DynamicGridButtonPosition position = DynamicGridButtonPosition.Left);        Button AddButton(string? caption, BitmapImage? image, Func<Button, CoreRow[], bool> action, DynamicGridButtonPosition position = DynamicGridButtonPosition.Left);        void UpdateButton(Button button, BitmapImage? image, string? text, string? tooltip = null);        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<TType>(CoreRow row, string column, TType value, bool refresh = true);        void UpdateRow<T, TType>(CoreRow row, Expression<Func<T, TType>> column, TType value, bool refresh = true);    }}
 |