2010-11-24 8 views
0

Je sais à propos des choses tombstoning n'importe comment enregistrer les états de votre application mais ma question est ceci concernant des états.Windows Phone 7 États

Disons que j'ai une page qui a 5 boutons. Chaque fois que je clique sur un bouton, le bouton peut être visible ou caché. Comment sauvegarder l'état actuel ou l'état enregistré de ma page? Disons que si je quitte mon application et que j'ai chargé les 5 boutons à nouveau, un bouton devrait être caché. J'ai essayé d'enregistrer une valeur d'état variable dans un fichier IsolatedStorageFile et de l'extraire lorsque la page est chargée dans un événement chargé, mais j'ai compris qu'il est trop fastidieux pour le processeur de faire beaucoup de choses juste pour sauvegarder un état.

Une autre solution à laquelle je pensais est lorsque l'événement Loaded est déclenché, je vais déclarer statiquement les instructions if else et déclarer manuellement la visibilité du bouton.

Existe-t-il un autre moyen?

Répondre

0

Essayez-vous de faire la même chose quand la page/app est sorti normalement et quand il est tombstone? Le comportement attendu par défaut est que lorsque vous lancez l'application après avoir quitté (via le bouton de retour) l'application sera dans son état par défaut. Lors du retour d'un état désactivé, l'application devrait (autant que possible) être affichée à l'utilisateur exactement de la même manière que lorsque la page/application a été désactivée.
Bien sûr, vous pourriez avoir des besoins différents, mais je voulais souligner le comportement standard.

Si vous souhaitez stocker l'état pendant qu'il est désactivé, la convention consiste à utiliser les événements OnNavigatedFrom et OnNavigatedTo pour stocker les détails dans l'objet State.

Il est un bon exemple de la façon de le faire sur MSDN: How to: Preserve and Restore Page State for Windows Phone

Si vous souhaitez conserver l'état dans toutes les exécutions de votre application, vous devrez utiliser IsolatedStorage pour stocker les détails dans un endroit persistant. Où et quand vous lisez et écrivez les données dépendront de l'endroit où se trouvent les données dont vous avez besoin pour persister.
Si c'est à un niveau applicaiton, vous pouvez utiliser les événements de niveau application (lancement, activation, fermeture & désactivé). Si vous avez des données d'état au niveau de la page, il est probablement préférable de le faire au niveau de la page (Loaded/Unloaded ou NavigatedFrom/To selon le cas).

Si vous souhaitez stocker l'état pour toutes les exécutions de l'application, vous devez probablement consulter les deux options ci-dessus.

+0

Pas vraiment sorti mais lorsque l'utilisateur navigue loin de cette page et retour. Bien sûr, les valeurs initiales de cette page seront chargées. Si j'utilise la documentation de MSDN, je crois qu'il ne stockera que l'état de la page pendant que l'application est en cours d'exécution, mais si elle est sortie, elle retourne aux valeurs initiales, ai-je raison? –

0

L'espace de noms System.IO.IsolatedStorage est très bien pour ce genre de comportement, vérifiez-le here Consultez également cet article sur comment faire ce que vous demandez.

Saving Applications States

+0

Salut merci pour votre réponse. Si j'ai utilisé IsolatedStorage.ApplicationSetting, cela sauvegardera-t-il même les valeurs actuelles de mes contrôles? Comme la visibilité –