在Xamarin中关闭子窗体后触发主页的一个函数



在我的Xamarin表单中,我有两页

  • 主页
  • 登录页面

在主页上,我在cs文件中有一个名为getfocus((的函数。主页是主窗体,登录页是子窗体。登录页面显示在主页面顶部。一旦我关闭LoginPage,我希望调用MainPage的getfocus((函数。我试过";"聚焦";属性,但该属性不起作用。下面是LoginPage上的代码,之后应该调用主页上的函数。以下行用于关闭登录页面。

await PopupNavigation.Instance.PopAsync(true(;

您可以使用MessagingCenter来实现此功能,根据您的声明,您似乎使用了Popup Page Plugin插件。

我写了一个小例子供你参考,希望能解决你的问题。

在您的await PopupNavigation.Instance.PopAsync(true);在代码下方添加MessagingCenter.Send<object>(this, "Hi");;使用这行代码注册MessagingCenter。

然后是主页代码:

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://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/messaging-center

很遗憾,我不得不更改导航模式。但是谢谢你的支持

最新更新