在非 Prism WPF 应用程序中,如果我想在初始化后运行代码(例如执行命令行参数指定的任务),我可以在主窗口的 Loaded 事件中进行。但是在 Prism 中,模块是在主窗口显示后初始化的,即在 IModule.Initialize()Bootstrapper.CreateShell() 之后调用 Bootstrapper.InitializeShell() 。在这种情况下,我应该使用哪个事件/覆盖?

最佳答案

UnityBootstrapper.Run(bool runWithDefaultConfiguration) 调用的最后一件事是 InitializeModules()(除了对 Logger.Log 的调用)。所以覆盖 Run(...)。

class Bootstrapper : UnityBootstrapper
{
    ...
    public override void Run(bool runWithDefaultConfiguration)
    {
        base.Run(runWithDefaultConfiguration);

        // modules (and everything else) have been initialized when you get here
    }
}

关于wpf - 在 WPF/Prism 应用程序中完成初始化时的事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10466304/

10-13 07:50