在我的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
很遗憾,我不得不更改导航模式。但是谢谢你的支持