J'ai un menu (Telerik RadMenu) dont les régions imbriquées sont définies dans l'environnement Shell. Dans mes modules, je vais enregistrer le menu des modules ou les éléments de la barre d'outils avec ces régions. Tout fonctionne correctement pour les régions racine, mais lorsque j'essaie d'ajouter quelque chose à une région enfant, telle que la région Fichier dans le Menu, j'obtiens l'erreur "Le message d'exception était: Le gestionnaire de région ne contient pas la région FileMenuRegion.Les régions imbriquées de MVVM Prism ne peuvent pas trouver de régions enfants
Cependant, comme je l'ai dit, si je change ce code
regionManager.Regions[RegionNames.FileMenuRegion].Add(menuItem);
à cette
regionManager.Regions[RegionNames.MainMenuRegion].Add(menuItem);
tout fonctionne bien. Ci-dessous le XAML de mon menu afin que vous puissiez voir les noms des régions et comment ils sont construits. Toute aide serait grandement appréciée car c'est déconcertant et me rend fou.
Menu
<telerikNavigation:RadMenu x:Name="menuMain" DockPanel.Dock="Top" prismrgn:RegionManager.RegionName="{x:Static i:RegionNames.MainMenuRegion}" telerik:StyleManager.Theme="{Binding Source={StaticResource settings}, Path=Default.CurrentTheme}">
<telerikNavigation:RadMenuItem Header="{x:Static p:Resources.File}" prismrgn:RegionManager.RegionName="{x:Static i:RegionNames.FileMenuRegion}">
<telerikNavigation:RadMenuItem Header="{x:Static p:Resources.Exit}" Command="{Binding ExitCommand}">
<telerikNavigation:RadMenuItem.Icon>
<Image Source="../Resources/Close.png" Stretch="None" />
</telerikNavigation:RadMenuItem.Icon>
</telerikNavigation:RadMenuItem>
</telerikNavigation:RadMenuItem>
</telerikNavigation:RadMenu>
Y a-t-il un moyen d'avoir des régions imbriquées ou non? S'il vous plaît jeter un oeil à [this] (http://compositewpf.codeplex.com/discussions/249769#post725985) commentaire pour comprendre mon problème exact - note, c'est le 3ème message dans ce fil. Merci! – Shimmy
Les régions sont des blocs de construction de mise en page uniquement. Le processus d'imbrication implique que vous voulez réellement des zones remplaçables dans des zones remplaçables. La solution consisterait à enregistrer des vues dans la région de niveau supérieur comme d'habitude, chacune contenant d'autres définitions de région. Les contrôles utilisateur peuvent avoir des régions, souvent simplement pour insérer des informations d'état fournies par des sources inconnues. –
J'ai trouvé ma réponse. publié [ici] (http://compositewpf.codeplex.com/discussions/249769#post726075). – Shimmy