2015-10-05 55 views
0

我有一個主窗口只包含的區域顯示其他瀏覽:PRISM導航到另一個View

<ContentControl Grid.Row="1" prism:RegionManager.RegionName="ContentRegion"/> 

我所要做的,就是馬上當我MainWindowViewModel負荷,導航到MainPageViewModel

我試圖實現接口INavigationAware如下列:

public void OnNavigatedTo(NavigationContext navigationContext) 
    { 
     _regionManager.RequestNavigate("ContentRegion", App.Experiences.DetailPage.ToString()); 
    } 

    public bool IsNavigationTarget(NavigationContext navigationContext) 
    { 
     return true; 
    } 

    public void OnNavigatedFrom(NavigationContext navigationContext) 
    { 
     _regionManager.RequestNavigate("ContentRegion", App.Experiences.DetailPage.ToString()); 
    } 

但是,即使當我把我的斷點過這些,他們是永遠不會被執行。

我在做什麼錯?

編輯

也許我需要改變我的引導程序邏輯是什麼?下面是它的樣子:

public class Bootstrapper: UnityBootstrapper 
{ 
    protected override System.Windows.DependencyObject CreateShell() 
    { 
     return Container.TryResolve<MainWindow>(); 
    } 
    protected override void InitializeShell() 
    { 
     Application.Current.MainWindow.Show(); 

    } 
    protected override void ConfigureContainer() 
    { 
     base.ConfigureContainer(); 

     Container.RegisterType(typeof(IDataRepository), typeof(DataRepository), null,new Microsoft.Practices.Unity.ContainerControlledLifetimeManager()); 


     Container.RegisterTypeForNavigation<MainPage>(App.Experiences.MainPage.ToString()); 
     Container.RegisterTypeForNavigation<DetailPage>(App.Experiences.DetailPage.ToString()); 


    } 
} 
+0

你想要的是,當應用程序加載導航到App.Experiences.DetailPage吧?另外,當您導航到頁面時,會調用OnNavigatedTo/From。你必須調用region.RequestNavigate在某種形式的事件(按鈕點擊等) – Zippy

+0

我可以肯定地通過按鈕單擊,但我試圖在我的應用程序初始化時自動加載適當的(默認)視圖 –

回答

1

我不得不修改我的引導程序邏輯,如下列:

protected override void InitializeShell() 
    { 
     Application.Current.MainWindow.Show(); 

     Prism.Regions.IRegionManager newRegion = Container.TryResolve<Prism.Regions.IRegionManager>(); 
     newRegion.RequestNavigate("ContentRegion", App.Experiences.MainPage.ToString()); 
    } 
相關問題