| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | using System;using System.Collections.Generic;using System.ComponentModel;using InABox.Core;using InABox.DynamicGrid;namespace InABox.Wpf;public abstract class MasterDetailPage<TMaster> : IMasterDetailPage<TMaster>{    public event DataModelUpdateEvent? OnUpdateDataModel;    protected MasterDetailPage(DynamicTabItem tab)    {        Tab = tab;    }        public DynamicTabItem Tab { get; set; }    public abstract Dictionary<string, object[]>? Selected();    public IDataModelSource? Refresh(TMaster? master)    {        Master = master;        return Refresh();    }        protected abstract IDataModelSource? Refresh();        public abstract IDataModelSource? DataModelSource();    public virtual void CreateToolbarButtons(IPanelHost host)    {    }        public TMaster? Master { get; set; }    protected void UpdateDataModel(string sectionName, DataModel model)    {        OnUpdateDataModel?.Invoke(sectionName, model);    }    public virtual void Heartbeat(TimeSpan time)    {    }    public virtual void Shutdown(CancelEventArgs? cancel)    {    }}
 |