ich habe ein Problem bei der Navigation mit Prism 7 und habe den starken Verdacht, dass das an meiner Projekt-Struktur liegt. Mein Startup-Projekt enthält die App.xaml.cs. Alle Views befinden sich in einem anderen Projekt auch MainWindowShell. MainWindowShell enthält eine ContentRegion in der Anfangs MainMenuView liegen soll. Über einen Command soll im MainMenuViewModel zum GraphicMenuView navigiert werden. Also statt MainMenuView soll in der Region GraphicMenuView liegen Beim Debuggen habe ich festgestellt, dass der Command auch durchlaufen wird. Das NavigationResult ist false aber ohne Error und auf der Oberfläche passiert gar nichts. Beim Vergleich mit funktionierendem Code ist mir aufgefallen, dass bei mir im regionManager keine Regions sind, obwohl ich in der MainWindowShell eine Region angelegt habe. Bei ausführlichen Tests habe ich festgestellt, dass, wenn ich MainWindowShell in mein Startup-Projekt verschiebe immerhin navigiert wird. Kann es sein, dass ich wegen zwei unterschiedlicher Projekte zwei RegionManager habe und deshalb auch keine Region in dem Startup-Projekt-RegionManager ist? Wenn ja, wie kann ich das beheben. Ich habe auch schon erfolglos versucht die Views aus dem ViewProjekt in einem IModul hinzuzufügen. Es hat mein Problem nicht gelöst. Ich bin langsam ratlos. Das einzige, was mir einfällt, um mein Problem zu lösen, wäre den Inhalt des View-Projekts ins Startup-Projekt zu verschieben. Aber das möchte ich eigentlich nicht nur machen müssen, nur weil ich zu blöd bin es anders zu lösen. Ich bin für alle Hinweise dankbar.
public partial class App : PrismApplication
{
protected override void InitializeShell(Window shell)
{
var mainWindow = (MainWindowShell)shell;
var regionManager = Container.Resolve<IRegionManager>();
regionManager.RegisterViewWithRegion(RegionNames.Content, typeof(MainMenuView));
this.MainWindow = mainWindow;
mainWindow.Show();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<GraphicMenuView>();
containerRegistry.RegisterForNavigation<MainMenuView>();
}
protected override Window CreateShell()
{
return Container.Resolve<MainWindowShell>();
}
}
<ContentControl regions:RegionManager.RegionName="{x:Static utilities:RegionNames.Content}">
MainWindowView (Auszug):
<Button Command="{Binding NavigateCommand}" CommandParameter="Graphic"/>