Prism 6 WPF 创建shell问题覆盖onstartup类

问题描述 投票:0回答:1

如果使用 prism 6,我如何覆盖默认启动类或窗口。 我浏览了 prism 的官方文档,但找不到预期的答案。

我尝试使用 Prims 6 从 PrismApplication 派生 Application 类,但它抛出了一个错误。

public partial class App : PrismApplication {}

因为这并没有发生。

c# wpf mvvm
1个回答
0
投票

您必须使用 Bootstrapper 类来初始化并创建 shell 或启动窗口,然后在 app.xaml.cs 中的启动方法中创建一个实例

Bootstrapper.cs:

public class Bootstrapper : UnityBootstrapper
{
    protected override DependencyObject CreateShell()
    {
        // Resolve any instance here
        return Container.TryResolve<MainWindow>();
    }

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

然后在 App.xaml.cs 文件中重写 OnStartUp 方法并在那里创建此实例并运行引导程序。

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        var bootstrapper = new Bootstrapper();
        bootstrapper.Run();
    }
}

注意:StartUp 属性值应从 app.xaml 文件中删除...

© www.soinside.com 2019 - 2024. All rights reserved.