فهرست منبع

Exposed Panel property in non-generic IMasterDetailPanelPage interface

frogsoftware 1 سال پیش
والد
کامیت
9a3d670d1c
2فایلهای تغییر یافته به همراه12 افزوده شده و 6 حذف شده
  1. 1 1
      inabox.wpf/MasterDetailPanel/MasterDetailPage.cs
  2. 11 5
      inabox.wpf/MasterDetailPanel/MasterDetailPanelPage.cs

+ 1 - 1
inabox.wpf/MasterDetailPanel/MasterDetailPage.cs

@@ -24,7 +24,7 @@ public abstract class MasterDetailPage<TMaster> : IMasterDetailPage<TMaster>
     
     protected abstract IDataModelSource Refresh();
     
-    public abstract IDataModelSource DataModelSource();
+    public abstract IDataModelSource? DataModelSource();
     
     public TMaster? Master { get; set; }
 }

+ 11 - 5
inabox.wpf/MasterDetailPanel/MasterDetailPanelPage.cs

@@ -4,21 +4,27 @@ using InABox.DynamicGrid;
 
 namespace InABox.Wpf;
 
-public abstract class MasterDetailPanelPage<TMaster,TPanel> : MasterDetailPage<TMaster>
-    where TPanel : class, IBasePanel, IMasterDetailControl<TMaster>, new()
+public interface IMasterDetailPanelPage
 {
+    IBasePanel? Panel { get; }
+}
 
-    public MasterDetailPanelPage(DynamicTabItem tab) : base(tab) { }
+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);
+    protected abstract void DoRefresh(TPanel? panel);
 
     public override IDataModelSource DataModelSource() => CheckPanel();
     
-    protected override IDataModelSource Refresh()
+    protected override IDataModelSource? Refresh()
     {
         
         CheckPanel();