2011-08-30 4 views
0

Je crée une vue de connexion qui demande à l'utilisateur son nom d'utilisateur et son mot de passe, puis l'utilisateur peut cliquer sur le bouton Connexion pour essayer de se connecter. Lorsque l'utilisateur clique sur le bouton dans le gestionnaire de clic pour ce bouton, j'appelle la méthode Login() sur ma classe LoginViewModel avec le nom d'utilisateur et le mot de passe validés dans cette méthode puis la méthode envoie une requête async REST à mon service web. nom d'utilisateur et mot de passe. Une fois que le nom d'utilisateur et le mot de passe sont validés sur le service Web et que le service renvoie true pour indiquer que ces informations d'identification sont valides, comment puis-je notifier la vue de connexion afin que la vue de connexion puisse cesser d'afficher la page de progression? ?Windows Phone 7 Application Silverlight Connexion MVVM

Répondre

0

Vous devriez avoir une propriété booléenne dans votre viewmodel qui indique si le viewmodel est occupé ou non. Vous lieriez ensuite cette propriété à la propriété IsOpen de la fenêtre contextuelle. Pour la partie navigation, plusieurs options sont disponibles. L'un d'eux est d'avoir un contrôleur qui sait comment aller de page en page, et il est utilisé par le viewmodel.

En outre, pourquoi transmettez-vous des paramètres à votre méthode de connexion? Et pourquoi utilisez-vous les événements en premier lieu? Vous devriez envisager de créer une commande dans votre VM et de la lier directement au bouton.

Vous avez besoin d'un environnement MVVM pour suivre ce modèle sur Windows Phone. Je recommanderais Prism ou MVVMLight.

1

Vous n'avez pas besoin d'un framework mvvm pour implémenter mvvm mais cela accélère les choses. Dans la lumière mvvm, vous pouvez avoir un RootView qui a un cadre de navigation et utiliser le messager pour dire au RootView d'échanger ou non le LoginView ou le MainView basé sur l'authentification. Pour les applications wp7, je préfère Caliburn Micro car cela facilite énormément la navigation dans les pages de la première approche forcée, mais facilite également l'utilisation de la première approche de ViewModel sur les sous-pages. CM a aussi quelques bonnes choses intégrées pour vous aider à gérer tombstoning.

Dans CM, votre ShellView peut avoir un ContentControl et vous pouvez activer les bases LoginViewModel ou MainViewModel lors de l'authentification réussie ou non.