0

我遵循https://github.com/PrismLibrary/Prism-Samples-Wpf/blob/master/17-BasicRegionNavigation中提供的示例代码

我想在运行应用程序时获得以下结果(没有明确单击导航到视图 A)。有谁知道该怎么做? 期望的结果

我尝试在此行Navigate("ViewA");之后添加。但是,我无法得到想要的结果。是因为模块没有初始化吗?

谢谢。

4

3 回答 3

0

最终我通过在 MainWindow.xaml.cs 中添加以下代码来解决

public partial class MainWindow
{
    IRegionManager _regionManager;
    public MainWindow()
    {
        InitializeComponent();
        _regionManager = ServiceLocator.Current.GetInstance<IRegionManager>();
        RegionManager.SetRegionManager(ContentRegion, _regionManager);
        Loaded += MainWindow_Loaded;
    }

    private void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        _regionManager.RequestNavigate("ContentRegion", "ViewA");
    }
}

从以下位置获取想法:https ://github.com/MahApps/MahApps.Metro/issues/1020#issuecomment-44779574

于 2019-01-24T09:35:09.997 回答
0

我在这里参加聚会有点晚了,但我也偶然发现了如何在应用程序启动期间导航到默认视图的问题。

我找到了两种方法:

1.App决定默认视图

这可以在 -Class 中的CreateShell()-override 中解决App

这是我的CreateShell方法:

/// <inheritdoc />
protected override Window CreateShell()
{
    var window = this.Container.Resolve<MainWindow>();

    window.Loaded += (sender, args) =>
    {
        var manager = this.Container.Resolve<IRegionManager>();

        manager.RequestNavigate("ContentRegion", "ViewA");
    };

    return window;
}

2. ViewModel 决定默认视图

添加一个构造函数MainWindowViewModel,如下所示:

public MainWindowViewModel(IRegionManager regionManager)
{
    regionManager.RegisterViewWithRegion("ContentRegion", "ViewA");
}
于 2021-12-13T12:25:00.483 回答
0

您是否使用覆盖方法 ConfigureModuleCatalog 将模块添加到模块目录?看看这里

于 2019-01-23T16:43:07.633 回答