Pregunta

Estoy construyendo una aplicación de WP7, y estoy ahora en el punto de manejar la parte tombstoning de la misma.

Lo que estoy haciendo es salvar el modelo de vista de la página en la bolsa Page.State cuando se produce el evento NavigatedFrom, y leer de nuevo en el NavigatedTo (con algún tipo de control para detectar si debería leer de la bolsa o leer desde el los datos reales en vivo de la aplicación).

En primer lugar mi VM era sólo un envoltorio para el modelo de dominio

public string Nome
    {
        get
        {
            return _dm.Nome;
        }
        set
        {
            if (value != _dm.Nome)
            {
                _dm.Nome= value;
                NotifyPropertyChanged("Nome");
            }
        }
    }

Sin embargo, esto no siempre funcionaba debido al guardar en la bolsa y luego volver a leer, el modelo de dominio no era deserializar correctamente.

A continuación, he cambiado de aplicación VM ser sólo una copia de las propiedades que necesitaba de la DM:

public string Nome
    {
        get
        {
            return _nome;
        }
        set
        {
            if (value !=nome)
            {
                _nome= value;
                NotifyPropertyChanged("Nome");
            }
        }
    }

y con el constructor que hace:

_nome = dm.Nome;

Y ahora funciona, pero no estaba seguro de si este es el enfoque correcto.

Thx Simone

¿Fue útil?

Solución

Cualquier información de estado transitorio debe persistir en caso Application.Deactivated y luego restaurarse en el caso Application.Activated de cabeceo de ayuda.

Si necesita almacenar cualquier cosa entre sesiones de aplicación, entonces usted podría utilizar el evento Application.Closing, pero dependiendo de lo que necesita para almacenar, usted podría almacenarlo cada vez que cambia. Una vez más, dependiendo de lo que necesita para almacenar, puede restaurarlo en caso Application.Launching, o simplemente leerlo cuando lo necesite.

El enfoque que se tome depende por completo de los requisitos de su aplicación y el método y la ubicación que almacenar sus datos son también depende de ti (serialización binaria para el almacenamiento aislado es generalmente aceptado es ser el más rápido).

No sé los detalles de su aplicación, pero guardar y restaurar datos en NavigatedFrom / NavigatedTo es poco probable que sea el lugar adecuado para hacerlo si usted está buscando para implementar el soporte para tombstoning.

Otros consejos

Me gustaría recomendar en contra de hacer una copia de parte del modelo como cuando el cabeceo que le (probablemente) la necesidad de persistir tanto el modelo completo (nivel de aplicación) y la copia de nivel de página al manejar tombstoning.

vez más la solución más adecuada dependerá de la complejidad de su aplicación y los modelos que utiliza.

Application.Activated / desactivado es un lugar bueno para tombstoning mango.

ver por qué OnNavigatedTo / De no ser apropiado para sus necesidades aquí.

Cómo manejar correctamente la desactivación y reactivación de aplicación - Blog de Peter Torr

modelo de ejecución general para Windows Phone

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top