如何使用PopAsync将数据传递到上一页? [英] How to pass data to the previous page using PopAsync?
本文介绍了如何使用PopAsync将数据传递到上一页?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请考虑以下情形:
- 用户在第1页上
- 他单击按钮将其移至第2页(称为
await Navigation.PushAsync(new SomePage());
) - 完成某些操作后,他单击确定"按钮
- 单击确定"后,应用程序将调用PopAsync移至第1页并向其中发送一些数据(第2页上的活动结果).
- User is on some Page 1
- He clicks button that moves him to Page 2 (calling
await Navigation.PushAsync(new SomePage());
) - After finishing certain action, he clicks "OK" button
- After clicking "OK", app calls PopAsync to move to Page 1 and sends there some data (result of activity on Page 2).
如何从第1页的第2页接收数据?
How can I receive data from Page 2 in Page 1?
推荐答案
最好的方法(IMO)是通过引发事件来处理原始页面的弹出消息.像这样:
The best way (IMO) would be to handle the pop from the originating page by raising an event. Something like this:
public class LoginPage : ContentPage
{
public event EventHandler LoginSucceeded;
public event EventHandler LoginFailed;
private void OnLoginSucceeded()
{
if (LoginSucceeded != null)
{
LoginSucceeded(this, EventArgs.Empty);
}
}
private void OnLoginFailed()
{
if (LoginFailed != null)
{
LoginFailed(this, EventArgs.Empty);
}
}
}
和来自app.cs
public class App : Application
{
public App()
{
var loginPage = new LoginPage();
loginPage.LoginSucceeded += HandleLoginSucceeded;
MainPage = loginPage;
}
private void HandleLoginSucceeded(object sender, EventArgs e)
{
MainPage = new MainPage();
}
}
您可以通过此处了解更多信息–确实不错文章
You can read more about it over here -- Really good article
另一种选择是使用 MessagingCenter
这篇关于如何使用PopAsync将数据传递到上一页?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文