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