如何使用 PopAsync 将数据传递到上一页? [英] How to pass data to the previous page using PopAsync?

查看:24
本文介绍了如何使用 PopAsync 将数据传递到上一页?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑以下场景:

  1. 用户在某个页面 1
  2. 他点击了将他移至第 2 页的按钮(调用 await Navigation.PushAsync(new SomePage()); )
  3. 完成某项操作后,点击确定"按钮
  4. 点击确定"后,应用调用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆