using System.Collections.Generic; using InABox.Core; using InABox.DynamicGrid; namespace InABox.Wpf; public abstract class MasterDetailPanelPage : MasterDetailPage where TPanel : class, IBasePanel, IMasterDetailControl, new() { public MasterDetailPanelPage(DynamicTabItem tab) : base(tab) { } public TPanel? Panel { get; set; } public override Dictionary? Selected() => Panel?.Selected(); protected abstract void DoRefresh(TPanel panel); protected override IDataModelSource Refresh() { if (Panel == null) { Panel = new TPanel { IsReady = false }; Panel.Setup(); Panel.IsReady = true; Tab.Content = Panel; } Panel.Master = Master; DoRefresh(Panel); return Panel; } }