2009-10-22 4 views
3

Nous concevons une application xbap qui a un flux de navigation complexe, configurable par l'utilisateur, qui dépend de l'état de la sécurité du modèle \ utilisateur, etc. et d'autres facteurs environnementaux.Navigation dans l'application MVVM

L'application est d'avoir une vue de récipient qui charge des commandes spécifiques à l'utilisateur à l'intérieur d'un cadre, je me demande ce qui est la pratique préférée pour avoir la logique de navigation, à l'intérieur d'un dispositif de commande séparé ou dans le viewmodel de la vue du récipient ..

Répondre

1

Je pense que raccorder un gestionnaire d'événement routé de niveau supérieur pour Hyperlink.RequestNavigate et un CommandBinding pour NavigationCommands.GoToPage serait un niveau de séparation suffisant. En cherchiez-vous plus?

+0

bien je me demandais plus de l'architecture prespective, pas comment c'est possible dans wpf api –

2

Je mettrais le code de flux de navigation dans un contrôleur global ou un service quelconque. Vous ne voulez probablement pas que vos vues ou modèles de vues aient une telle logique, car elles leur apporteraient beaucoup de dépendances, surtout si votre flux est assez complexe et personnalisable. Au lieu de cela, vous voulez que ces vues et modèles de vues soient facilement testables à l'unité, auquel cas ils reporteraient ce qui se passe quand ils sont faits à quelqu'un qui est dans une meilleure position pour prendre la bonne décision.

0

Drew, aucune chance d'obtenir un peu plus d'explications à ce sujet. J'aime cette solution mais j'apprends et je ne comprends pas très bien comment la mettre en pratique, surtout s'il y a une logique spéciale dans viewModel pour déterminer où naviguer ensuite.