| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | using InABox.Core;using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Microsoft.CodeAnalysis.CSharp.Syntax;using Syncfusion.Windows.Tools.Controls;namespace InABox.DynamicGrid{    public interface IDynamicItemsListGrid : IDynamicGrid    {        IList Items { get; set; }                    }        public class DynamicItemsListGrid<T> : DynamicGrid<T>, IDynamicItemsListGrid        where T : BaseObject, new()    {                private List<T> _items = new List<T>();        public List<T> Items         {             get => _items;             set => _items = value;         }        IList IDynamicItemsListGrid.Items        {            get => _items;             set => _items = value as List<T> ?? new List<T>();        }        protected override void Init()        {        }        protected override void DoReconfigure(FluentList<DynamicGridOption> options)        {                    }        protected override void DeleteItems(params CoreRow[] rows)        {            foreach (var row in rows.OrderByDescending(x => x.Index))            {                Items.RemoveAt(_recordmap[row].Index);            }        }        protected override T LoadItem(CoreRow row)        {            return Items[_recordmap[row].Index];        }        protected override void Reload(Filters<T> criteria, Columns<T> columns, ref SortOrder<T>? sort, Action<CoreTable?, Exception?> action)        {            var result = new CoreTable();            result.LoadColumns(typeof(T));                        result.LoadRows(Items);            action.Invoke(result, null);        }        public override void SaveItem(T item)        {            if (!Items.Contains(item))            {                Items.Add(item);            }        }    }}
 |