Comment enregistrer des régions à l’intérieur de contrôles utilisateur ou de modèles de contrôle dans RegionManager?

J’utilise IRegionManager pour charger et naviguer dans les vues. Je n’ai aucun problème à charger du contenu dans ma région principale dans ma vue principale chargée avec ma classe d’amorçage, mais je ne peux pas charger le contenu dans des régions à l’intérieur de mes vues chargées. Le gestionnaire de région ne semble pas être enregistrer ces régions.

ma classe d’amorce:

 protected override DependencyObject CreateShell() { return this.Container.Resolve(); } protected override void InitializeShell() { Application.Current.MainWindow.Show(); } protected override void ConfigureContainer() { base.ConfigureContainer(); this.Container.RegisterTypeForNavigation(); this.Container.RegisterTypeForNavigation(); this.Container.RegisterTypeForNavigation(); } 

DocumentView est un contrôle utilisateur avec une autre région. La méthode qui s’exécute lorsque la commande est déclenchée est la suivante:

 private void ViewEmailAction() { NavigationParameters parameters; parameters = new NavigationParameters(); parameters.Add(nameof(this.CurrentEmail), this.CurrentEmail); this.regionManager.Regions[this.EmailRegion].RequestNavigate(nameof(EmailView), parameters); } 

Ceci génère une exception avec le message "The region manager does not contain the EmailRegion region."

Merci d’avance!

Il y a deux choses différentes qui se passent ici:

UserControls: Cela devrait fonctionner avec pas de problèmes que ce soit. Il est fort probable que vous essayiez de naviguer dans une région définie dans une vue qui n’a pas encore été chargée. Assurez-vous que vous naviguez vers une région après son chargement. La navigation à l’intérieur des constructeurs ViewModel est l’une des sources les plus importantes de ce problème. Si vous souhaitez publier votre échantillon sur GitHub, je peux y jeter un coup d’œil.

ControlTemplates: il s’agit d’un problème connu dans Prism. Voici votre solution:

http://southworks.com/blog/2011/11/10/regions-inside-datatemplates-in-prism-v4-using-a-region-behavior/