簡體   English   中英

PRISM導航到另一個視圖

[英]PRISM navigate to another View

我有一個MainWindow,其中僅包含用於顯示其他視圖的區域:

<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());
    }

但是即使我在這些斷點上設置斷點,它們也永遠不會執行。

我究竟做錯了什么?

編輯

也許我需要更改Bootstrapper邏輯? 看起來是這樣的:

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());


    }
}

我必須編輯Bootstrapper邏輯,如下所示:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM