Me gustaría poder responder a la respuesta de vjsrinath arriba; es IMO la mejor manera de hacer esto. ¡¡Muchas gracias!!
Probablemente es lo más parecido que he visto a la forma en que funciona el modelo de iOS, donde desde la primera página llamas a performSegue (== NavigateTo).A continuación, obtiene una devolución de llamada llamada prepareForSegue, que le permite configurar variables en la página de destino, establecer el delegado (generalmente en sí mismo), ese tipo de cosas.
Para pasar objetos complejos, supera a los pantalones que pasan los parámetros en la URL.
Como un ejemplo explícito, digo que quiero pasar a la cadena de versión de mi aplicación en un cuadro Acerca de que está en un proyecto separado:
En la clase de llamada:
private void About_Click(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri("/Library;component/Pages/About.xaml", UriKind.Relative));
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
if (e.Content is About)
{
About page = e.Content as About;
if (page != null)
{
page.VersionString = App.VersionText;
}
}
base.OnNavigatedFrom(e);
}
En el Sobre clase:
public partial class About : PhoneApplicationPage
{
public string VersionString { get; set; }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
versionTextBlock.Text = VersionString;
}
}
este es un ejemplo muy simple, por supuesto, pero la propiedad que está pasando a través podría ser cualquier objeto, por lo que esta muy potente. Por supuesto, puede incluir devoluciones de llamadas como "saveButtonPressed", etc. por lo que el manejo de guardado se puede realizar en la clase de llamada, no en la vista presentada, que es bastante mala para el orden del código. por ejemplo,
page.OnSaveButtonPressed = this.SaveButtonPressedHandler; // Pass object to save as parameter
¿Es que _usted_ no quiere hacer la serialización, pero no le importa pasar esa responsabilidad? Si es así, escuché que el 'IsolatedStorage' recibió mejoras, ¿podría ayudar eso? –
Lo realmente importante de entender es, ¿qué debería pasar cuando el usuario presiona el botón Atrás? – AnthonyWJones