2009-10-07 6 views
2

Dans mon application, une seule vue est visible à la fois. C'est pourquoi j'utilise un ContentControl dans mon shell. Le problème est que si j'ai une vue visible (disons View1) et que j'active View2, tout va bien jusqu'à ce point. Maintenant, l'utilisateur appuie sur le bouton Fermer sur View2, après quoi les utilisateurs finissent par regarder un écran vide, car aucune vue n'est active maintenant. Je suppose que l'adaptateur de région Désactive la vue actuellement active avant d'activer la vue suivante.WPF - Prism - Activer et désactiver les vues dans une région ContentControl

Comment puis-je m'assurer que la vue précédemment active redevient activée (View1 dans mon exemple)? Ai-je besoin d'un type de région différent pour réaliser cette fonctionnalité?

Merci à l'avance,

Ali

Répondre

1

Malheureusement (comme vous avez découvert) ce n'est pas le comportement. Vous devrez suivre vos points de vue et activer le précédent. Jeremiah a commenté et m'a fait réfléchir à un comportement pour cela. Je pense que le comportement ActiveAware est probablement un bon modèle pour un comportement qui permettrait de suivre les événements actifs/inactifs et éventuellement agir sur eux.

Voici le code source du comportement ActiveAware. Vous pourriez utiliser ce modèle comme point de départ pour un comportement qui fait ce que vous voulez, je suis assez sûr. http://compositewpf.codeplex.com/SourceControl/changeset/view/26112#496678

+0

Voici comment je le fais actuellement. Pensez-vous qu'un adaptateur/comportement de région personnalisée conviendrait à quelque chose comme ça? –

+0

Bonne suggestion. Je posterai quelque chose qui pourrait être un bon point de départ. Je pense que le comportement d'ActiveAware est très proche de la logique. –

+0

Jérémie, quelle méthode utilisez-vous pour suivre cela maintenant? Surtout comment gérez-vous les vues qui existent dans d'autres modules? Si une vue du module 1 est désactivée, la précédente peut exister dans Module2. Agrégation d'événements ou une sorte de service? En fin de compte, qui gère la liste des vues? Merci pour vos suggestions, je vais aussi vérifier l'idée d'Anderson. – Ali

Questions connexes