| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using System;
- using System.Threading;
- using Comal.Classes;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.Wpf;
- namespace PRSDesktop
- {
- public class QuoteDesignGrid : DynamicDataGrid<QuoteDesign>, IMasterDetailControl<Quote,QuoteDesign>
- {
- protected override void DoReconfigure(DynamicGridOptions options)
- {
- base.DoReconfigure(options);
- options.RecordCount = true;
- options.SelectColumns = true;
- }
- public Quote? Master { get; set; }
- public Filter<QuoteDesign> MasterDetailFilter => Master != null && Master.ID != Guid.Empty
- ? new Filter<QuoteDesign>(x => x.Quote.ID).IsEqualTo(Master.ID)
- : new Filter<QuoteDesign>().None();
- protected override void Reload(
- Filters<QuoteDesign> criteria, Columns<QuoteDesign> columns, ref SortOrder<QuoteDesign>? sort,
- CancellationToken token, Action<CoreTable?, Exception?> 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;
- }
- }
- }
|