using System; using System.Threading; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; using InABox.Wpf; namespace PRSDesktop { public class QuoteDesignGrid : DynamicDataGrid, IMasterDetailControl { protected override void DoReconfigure(DynamicGridOptions options) { base.DoReconfigure(options); options.RecordCount = true; options.SelectColumns = true; } public Quote? Master { get; set; } public Filter MasterDetailFilter => Master != null && Master.ID != Guid.Empty ? new Filter(x => x.Quote.ID).IsEqualTo(Master.ID) : new Filter().None(); protected override void Reload( Filters criteria, Columns columns, ref SortOrder? sort, CancellationToken token, Action action) { criteria.Add(MasterDetailFilter); base.Reload(criteria, columns, ref sort, token, action); } public override QuoteDesign CreateItem() { var result = base.CreateItem(); result.Quote.ID = Master?.ID ?? Guid.Empty; result.Quote.Synchronise(Master ?? new Quote()); return result; } } }