2010-10-28 3 views
2

Ceci est une question sur l'interface utilisateur de formulaire de modification pour une application WP7:Les formulaires d'édition WP7 doivent-ils comporter des boutons Enregistrer/Annuler ou vous devez utiliser une liaison bidirectionnelle?

J'ai actuellement mes champs de formulaire de modifier réglé sur 2 voies de liaison qui signifie que l'utilisateur les changements qu'ils économisent sur modifier et mettre à jour l'interface utilisateur dans le ViewModel (Méthode 1). Donc je n'ai pas besoin d'un bouton Enregistrer et il n'y a pas de bouton Annuler (sauf si vous codez en logique pour stocker l'état d'origine et revenir en arrière sur annuler).

La méthode 2 consisterait à utiliser une liaison 1 voie et UpdateSource sur le bouton de sauvegarde, et vous pourriez alors avoir un bouton Annuler qui fonctionne comme le bouton Précédent (revient en arrière sans sauvegarder).

La méthode 1 est sympa car elle gère la préservation de l'état si l'application est désactivée - WP7 restaurera la page et vos changements auront été sauvegardés. L'inconvénient est qu'il n'y a aucun moyen pour l'utilisateur de le restaurer dans son état de départ une fois qu'il a apporté des modifications. Ma forme est triviale, donc je ne pense pas que ce soit un problème. Le bouton Précédent agit en tant que retour.

Je fais également des calculs dans la propriété de setter dans ma VM qui doivent être reflétés à l'interface utilisateur (ie vous dans le champ 1 et le champ 2 est le double de la valeur (mais ils peuvent également le contourner) liaison sur le Champ 1 et mise à jour sur les champs 1 et 2. Je ne peux pas trouver un moyen de le faire en utilisant la mise à jour explicite

Le problème est que j'ai un bouton Supprimer pour l'enregistrement, donc quand j'utilise la méthode 1 sans bouton Enregistrer et Annuler l'utilisateur est susceptible de cliquer sur le bouton Supprimer car il est la seule option disponible (ils doivent cliquer sur le bouton Précédent pour revenir en arrière)

Ma question est la suivante: un bouton Enregistrer et Annuler et valider le d ata seulement sur Enregistrer, ou est-ce que vous pouvez utiliser la liaison bidirectionnelle et ne pas avoir de boutons?

Répondre

0

S'il est possible que l'utilisateur peut jamais vouloir ne pas avoir leur texte entré changé il sera plus facile d'avoir un sens unique de liaison et mettre à jour la seule valeur enregistrée lorsque l'utilisateur dit spécifiquement.
Oui, cela peut faire de la préservation des données saisies pendant un peu plus difficile, mais tombstoning signifie qu'il est plus facile que l'utilisateur vient d'être en mesure de changer d'avis.

Dans votre situation, je vous recommande d'avoir des boutons sur l'écran pour enregistrer et supprimer (et en s'appuyant sur le bouton retour dur pour annuler).

+0

Merci encore une fois pour l'avis Matt - le seul problème que j'ai avec cela est qu'un champ dépend d'un autre et a besoin de mettre à jour l'interface utilisateur lorsque la première est modifiée - la seule façon de faire est d'avoir une liaison bidirectionnelle sur ce champ Je suppose que je dois mettre une certaine logique pour restaurer la valeur sur NavigatedFrom (pour attraper toutes les sorties) à moins que le bouton Enregistrer ne soit poussé ... – Rodney

2

Certaines parties de ce sont mentionnés dans la page UI Design and Interaction Guide 68.

Modification des paramètres d'application doivent être mises en œuvre immédiatement. Ce signifie qu'un "Terminé", "OK" ou un autre dialogue de confirmation n'est pas nécessaire.
...
Si une tâche ne peut pas être annulée, donnez toujours à l'utilisateur une option d'annulation. L'entrée de texte est un exemple.
Les actions qui écrasent ou suppriment des données ou qui sont irréversibles doivent avoir un bouton "Annuler".

Quant à votre situation, vous aurez besoin d'une confirmation de l'action de suppression (voir les paramètres par exemple pour un exemple). Pour les autres champs, consultez le guide car d'autres problèmes sont mentionnés et vous pouvez également voir comment fonctionnent les paramètres intégrés.

+0

Merci - J'ai manqué cela, cependant, un écran de paramètres et un formulaire de saisie de données sont un peu différents. Il est également indiqué à la page 68: 1) Les actions qui écrasent ou suppriment des données ou qui sont irréversibles doivent avoir un bouton "Annuler". 2) Si une tâche ne peut pas être annulée, donnez toujours à l'utilisateur une option d'annulation.L'entrée de texte est un exemple. - Donc, je suis encore un peu confus quant à ce qui est la meilleure pratique pour un écran d'édition? – Rodney

+0

Vous avez raison à leur être différent désolé à ce sujet. J'ai regardé mais n'ai pas vraiment trouvé une réponse définitive. C'est à dire ok et annuler les boutons pour sa boîte de dialogue ajouter des favoris et les modèles de conception (http://wp7designtemplates.codeplex.com/) sont similaires, ce qui serait ma recommandation. Vous pourriez obtenir une réponse plus officielle sur les forums msdn. – Kris