Csharp/C#教程:如何使用PopAsync将数据传递到上一页?分享


如何使用PopAsync将数据传递到上一页?

请考虑以下情形:

  1. 用户在某些页面上
  2. 他点击按钮将他移动到第2页(调用await Navigation.PushAsync(new SomePage());
  3. 完成某些操作后,他点击“确定”按钮
  4. 单击“确定”后,应用程序调用PopAsync移动到第1页并向其发送一些数据(第2页上的活动结果)。

如何从第1页的第2页接收数据?

最好的方法(IMO)是通过引发事件来处理来自原始页面的弹出窗口。 像这样的东西:

 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(); } } 

你可以在这里阅读更多相关内容 – 非常好的文章

另一种选择是使用MessagingCenter

您可以在此处使用我的答案或在同一页面上使用SushiHangover的答案。

我的回答将在ContentPage工作,而SushiHangover将在任何地方工作。

我的回答涉及在执行PushAsync()之前订阅ContentPage.OnDisappearing从第1页出现。

如果要更改的数据保存到第2页的数据库中,您可以使用Page 1的OnAppearing()事件始终从数据库中提取新内容,这将提取第2页上更改的新数据OnAppearing()将在弹出第2页并且用户返回到第1页后执行。

上述就是C#学习教程:如何使用PopAsync将数据传递到上一页?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/996972.html

(0)
上一篇 2021年12月25日
下一篇 2021年12月25日

精彩推荐