如何使用 PopAsync 将数据传递到上一页? [英] How to pass data to the previous page using PopAsync?
本文介绍了如何使用 PopAsync 将数据传递到上一页?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
考虑以下场景:
- 用户在某个页面 1
- 他点击了将他移至第 2 页的按钮(调用
await Navigation.PushAsync(new SomePage());
) - 完成某项操作后,点击确定"按钮
- 点击确定"后,应用调用 PopAsync 移动到第 1 页并向那里发送一些数据(第 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屋!
查看全文