c# navigation save windows-phone-8.1

c# - Pasar datos de una página a otra para Windows Phone 8.1



navigation save (2)

--Primero crea una clase

public class PassedData { public string email { get; set; } }

- Entonces puede navegar dentro de las páginas que cuelgan el valor

Frame.Navigate(typeof(Frame2), new PassedData { email = emailtxt.Text });

--luego atrapa el valor que pasa en otra página

var passedData = e.Parameter as PassedData; emailtxt.Text = passedData.email;

Tengo la misma pregunta exacta que Pasar datos de una página a otra , pero solo para Windows Phone 8.1 (opuesto a Windows Phone 7). Aquí está la pregunta:

Estoy buscando la mejor práctica sobre cómo pasar datos de una página a otra.

En la página AI tengo un botón que dispara fuera de la página B. En la página BI, tiene 6 cuadros de texto que le permiten al usuario ingresar información. Cuando el usuario finaliza, haga clic en un botón que los devuelve a la Página A.

Quiero pasar esa información a la Página A.

He visto sugerencias para:

crear documentos XML y guardarlos en Almacenamiento aislado usar la clase de la aplicación para almacenar información en propiedades pasarla como una cadena de consulta. Estoy buscando la mejor práctica. ¿Hay uno que Microsoft recomienda o uno que generalmente se acepta como la mejor manera?

Gracias


En WP8.1 Runtime - para Silverlight , los métodos utilizados en WP8.0 aún deberían funcionar - tienes un par de obstáculos:

  • la primera y probablemente la forma más fácil es utilizar Navigate con parámetro ; no es necesario convertirlo a una cadena si es un tipo serializable:

    // let''s assume that you have a simple class: public class PassedData { public string Name { get; set; } public int Value { get; set; } } // then you navigate like this: Frame.Navigate(typeof(Page1), new PassedData { Name = "my name", Value = 10 }); // and in target Page you retrive the information: protected override void OnNavigatedTo(NavigationEventArgs e) { PassedData data = e.Parameter as PassedData; }

  • puedes usar algunos objetos estáticos para pasar tus datos a lo largo de la aplicación

  • finalmente, como lo mencionó, puede guardar sus datos en: LocalSettings , LocalStorage , LocalCache , aunque en este caso también tendrá que serializarlo en XAML, Json u otro.

Tenga en cuenta que también tendrá que manejar la suspensión / reanudación de la aplicación, por lo que será adecuado guardar sus datos cuando la aplicación se suspenda y cargar cuando se reanude. Debes recordar que OnNavigatedTo no se está llamando cuando la aplicación se está reanudando.

Lo anterior era sobre navegación normal (adelante). Si desea llenar algunos datos en la página anterior, entonces tiene un par de opciones:

  • pasar un controlador a una página anterior, para que pueda acceder a las variables / propiedades públicas de la página actual,
  • use una variable / propiedad estática - tal vez un singleton
  • nuevamente use archivos / configuraciones

Tenga en cuenta que una vez más, los primeros dos métodos tienen la desventaja de que la aplicación puede bloquearse después de suspenderse. Guardar aquí los archivos podría ser mejor, el pensamiento necesita más trabajo y un manejo adecuado.