* UIForm: 重构页面添加、选择、删除事件

This commit is contained in:
Sunny 2022-08-30 13:16:31 +08:00
parent ec7d24e8e0
commit bb28d99411
4 changed files with 17 additions and 15 deletions

View File

@ -261,9 +261,12 @@ namespace Sunny.UI
public void AddPage(UIPage page) public void AddPage(UIPage page)
{ {
Helper.AddPage(page); Helper.AddPage(page);
Frame?.DealPageAdded(page); PageAdded?.Invoke(this, new UIPageEventArgs(page));
} }
internal event OnUIPageChanged PageAdded;
internal event OnUIPageChanged PageRemoved;
public void AddPage(int pageIndex, UITabControl page) => Helper.AddPage(pageIndex, page); public void AddPage(int pageIndex, UITabControl page) => Helper.AddPage(pageIndex, page);
public void AddPage(int pageIndex, UITabControlMenu page) => Helper.AddPage(pageIndex, page); public void AddPage(int pageIndex, UITabControlMenu page) => Helper.AddPage(pageIndex, page);
@ -850,7 +853,7 @@ namespace Sunny.UI
{ {
if (AutoClosePage) if (AutoClosePage)
{ {
Frame?.DealPageRemoved(pages[i]); PageRemoved?.Invoke(this, new UIPageEventArgs(pages[i]));
try try
{ {

View File

@ -2115,6 +2115,9 @@ namespace Sunny.UI
{ {
mainTabControl = value; mainTabControl = value;
mainTabControl.Frame = this; mainTabControl.Frame = this;
mainTabControl.PageAdded += DealPageAdded;
mainTabControl.PageRemoved += DealPageRemoved;
} }
} }
@ -2141,6 +2144,7 @@ namespace Sunny.UI
page.Frame = this; page.Frame = this;
page.OnFrameDealPageParams += Page_OnFrameDealPageParams; page.OnFrameDealPageParams += Page_OnFrameDealPageParams;
page.PageSelected += DealPageSelected;
MainTabControl?.AddPage(page); MainTabControl?.AddPage(page);
return page; return page;
} }
@ -2246,21 +2250,21 @@ namespace Sunny.UI
public event OnUIPageChanged PageAdded; public event OnUIPageChanged PageAdded;
public void DealPageAdded(UIPage page) internal void DealPageAdded(object sender, UIPageEventArgs e)
{ {
PageAdded?.Invoke(this, new UIPageEventArgs(page)); PageAdded?.Invoke(this, e);
} }
public event OnUIPageChanged PageSelected; public event OnUIPageChanged PageSelected;
public void DealPageSelected(UIPage page) internal void DealPageSelected(object sender, UIPageEventArgs e)
{ {
PageSelected?.Invoke(this, new UIPageEventArgs(page)); PageSelected?.Invoke(this, e);
} }
public event OnUIPageChanged PageRemoved; public event OnUIPageChanged PageRemoved;
public void DealPageRemoved(UIPage page) internal void DealPageRemoved(object sender, UIPageEventArgs e)
{ {
PageRemoved?.Invoke(this, new UIPageEventArgs(page)); PageRemoved?.Invoke(this, e);
} }
#endregion IFrame实现 #endregion IFrame实现

View File

@ -59,12 +59,6 @@ namespace Sunny.UI
T GetPage<T>() where T : UIPage; T GetPage<T>() where T : UIPage;
List<T> GetPages<T>() where T : UIPage; List<T> GetPages<T>() where T : UIPage;
void DealPageAdded(UIPage page);
void DealPageSelected(UIPage page);
void DealPageRemoved(UIPage page);
} }
public class UIPageParamsArgs : EventArgs public class UIPageParamsArgs : EventArgs

View File

@ -455,10 +455,11 @@ namespace Sunny.UI
get; set; get; set;
} }
internal event OnUIPageChanged PageSelected;
public virtual void Init() public virtual void Init()
{ {
Initialize?.Invoke(this, new EventArgs()); Initialize?.Invoke(this, new EventArgs());
Frame?.DealPageSelected(this); PageSelected?.Invoke(this, new UIPageEventArgs(this));
} }
protected override void OnLoad(EventArgs e) protected override void OnLoad(EventArgs e)