考虑以下情况:
await Navigation.PushAsync(new SomePage());
)如何从第1页的第2页接收数据?
答案 0 :(得分:12)
最好的方式(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();
}
}
您可以通过here了解更多信息 - 非常好的文章
另一种选择是使用 MessagingCenter
答案 1 :(得分:4)
您可以在同一页面上使用我的回答here或SushiHangover的答案。
我的答案适用于ContentPage
,而SushiHangover可以在任何地方使用。
我的回答是在执行ContentPage.OnDisappearing
之前订阅第1页的PushAsync()
。
如果要更改的数据保存到第2页的数据库中,您只需使用第1页OnAppearing()
事件就可以从数据库中获取新数据,从而获取新的数据。在第2页上更改OnAppearing()
将在弹出第2页并且用户返回到第1页后执行。