在 Xamarin 中关闭子窗体后触发 Main Page 的功能
Posted
技术标签:
【中文标题】在 Xamarin 中关闭子窗体后触发 Main Page 的功能【英文标题】:Triger a function of Mainpage after closing a subform in Xamarin 【发布时间】:2021-12-23 12:42:10 【问题描述】:在我的 Xamarin 表单中,我有两个页面
主页 登录页面在主页上,我在 cs 文件中有一个名为 getfocus() 的函数。 MainPage 是主窗体,LoginPage 是子窗体。 LoginPage 出现在 MainPage 的顶部。关闭 LoginPage 后,我希望调用 MainPage 的 getfocus() 函数。我在 xaml 中尝试了 contentpage 的“focused”属性,但它不起作用。下面是 LoginPage 上的代码,之后应该调用 mainpage 上的函数。以下行用于关闭 LoginPage。
等待 PopupNavigation.Instance.PopAsync(true);
【问题讨论】:
使用页面的Disappearing
事件
【参考方案1】:
你可以使用MessagingCenter来实现这个功能,根据你的说法你好像使用Popup Page Plugin
插件。
我写了一个小例子供你参考,希望能解决你的问题。
在你的第一
await PopupNavigation.Instance.PopAsync(true);
在代码下方添加MessagingCenter.Send<object>(this, "Hi");
;使用这行代码注册MessagingCenter。
然后这里是MainPage代码:
public partial class MainPage : ContentPage
public MainPage()
InitializeComponent();
MessagingCenter.Subscribe<object>(this, "Hi", (sender) =>
getfocus();
);
private async void Button_Clicked(object sender, EventArgs e)
await Navigation.PushPopupAsync(new LoginPage());
private void getfocus()
使用 MessagingCenter.Subscribe 接收并调用 getfocus() 方法。
更多关于MessagingCenter的信心,可以参考:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/messaging-center
【讨论】:
【参考方案2】:不幸的是,我不得不改变我的导航模式。但是谢谢大家的支持
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于在 Xamarin 中关闭子窗体后触发 Main Page 的功能的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java 在 Selenium WebDriver 中关闭子浏览器窗口