【问题标题】:PRISM navigate to another ViewPRISM 导航到另一个视图
【发布时间】:2015-10-05 08:48:36
【问题描述】:

我有一个 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());
    }

但即使我在这些上设置断点,它们也永远不会执行。

我做错了什么?

编辑

也许我需要更改我的引导程序逻辑?下面是它的样子:

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


    }
}

【问题讨论】:

  • 您想要的是,当应用加载时导航到 App.Experiences.DetailPage,对吗?此外,当您导航到页面/从页面导航时,会调用 OnNavigatedTo/From。您必须以某种形式的事件(按钮单击等)调用 region.RequestNavigate
  • 我当然可以通过单击按钮来完成,但我试图在我的应用程序初始化时自动加载适当的(默认)视图

标签: c# wpf mvvm navigation prism


【解决方案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());
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多