2010-12-13 8 views
0

J'ai une application avec deux formes (fenêtres) Ils représentent le recto et le verso d'une carte d'identité Les utilisateurs saisissent des données et l'imprimante crache sur quelque chose qui peut être plié et stratifié pour donner l'effet de retour avant J'utilise différentes vues pour montrer l'avant et l'arrière et je suppose que ma question est comment puis-je utiliser la même instance ViewModel dans les deux (les données doivent être enregistrées dans une base de données avant l'impression) Ou est-ce que je fais tout faux et je devrait juste avoir une vue et montrer hide Front \ Back (je déteste vraiment que) MerciMVVM conception Question

Répondre

0

Généralement, vous allez vouloir un ViewModel par View, puisque le travail du ViewModel est de pr ovide exactement les données nécessaires à la vue à laquelle il est attaché. Donc, dans votre cas, il semble que vous devriez avoir un View et ViewModel pour le front et un View et ViewModel pour le dos.

Il existe plusieurs façons d'enregistrer les données lorsque l'utilisateur soumet le formulaire. Un modèle courant consiste à configurer des classes de référentiel pour chacune de vos tables de base de données. Les classes de référentiel vous permettent généralement de sélectionner, d'insérer, de mettre à jour et de supprimer des données. Ainsi, vous pouvez passer les référentiels nécessaires dans chaque ViewModel, puis, lorsque l'utilisateur soumet, demander à ViewModel d'indiquer au référentiel d'insérer ou de mettre à jour les données.

+0

dans le schéma db si recto et verso sont dans la même rangée aplaties pour ainsi dire que vous suggérez en fonction de l'id je fusionne les valeurs avant et arrière dans le référentiel? – Rahul

+0

@Rahul, je suggère de créer une "classe d'entité" pour contenir toutes les données de votre table. Cette classe doit avoir une propriété correspondant à chaque colonne. Lorsque vous créez de nouveaux ViewModels avant et arrière, transmettez simplement une nouvelle instance de votre classe d'entité. Étant donné que vos deux ViewModels partagent une instance de la classe d'entité, lorsque l'utilisateur remplit les données, cette instance contient toutes les données des deux côtés du formulaire. Ensuite, lorsque vous soumettez, vous pouvez simplement passer la classe d'entité dans le référentiel et faire un Insert(). – devuxer

+0

j'aime la suggestion d'entité partagée Dan merci – Rahul