using System; using System.Windows; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; namespace PRSDesktop { public class SupplierContactGrid : DynamicDataGrid, ISupplierGrid { public SupplierContactGrid() { ParentID = CoreUtils.FullGuid; Options.AddRange( DynamicGridOption.AddRows, DynamicGridOption.EditRows, DynamicGridOption.SelectColumns, DynamicGridOption.DeleteRows ); } public Guid ParentID { get; set; } protected override void Reload(Filters criteria, Columns columns, ref SortOrder sort, Action action) { criteria.Add(new Filter(x => x.Supplier).LinkValid(ParentID)); base.Reload(criteria, columns, ref sort, action); } protected override SupplierContact CreateItem() { var result = base.CreateItem(); result.Supplier.ID = ParentID; return result; } protected override BaseEditor? GetEditor(object item, DynamicGridColumn column) { if (column.ColumnName.Equals("Supplier.ID")) return new NullEditor(); return base.GetEditor(item, column); } protected override void DoAdd(bool OpenEditorOnDirectEdit = false) { if (ParentID == Guid.Empty) MessageBox.Show("Please select a Supplier first!"); else base.DoAdd(); } } }