Consider the following scenario:
await Navigation.PushAsync(new SomePage());
)How can I receive data from Page 2 in Page 1?
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);
}
}
}
and from 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
Another option is to use MessagingCenter
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With