【发布时间】:2013-05-10 20:35:28
【问题描述】:
通常我只是 App.xaml 资源中的引导程序,但对于我正在构建的应用程序,我需要在其他地方开始执行代码,然后在我完成初始化代码后启动引导程序。
如何启动引导程序?
我将 App.xaml 设置为调用函数,然后这样做:
using System.Windows;
namespace WpfApplication9
{
public partial class App : Application
{
private AdminBootstrapper b;
private void App_OnStartup(object sender, StartupEventArgs e)
{
//DO initialization
b = new AdminBootstrapper();
b.Start();
}
}
}
当我运行时,什么也没有发生,我的视图也没有出现。我知道视图/视图模型可以工作,因为如果我将引导程序放在 App.xaml 的资源部分中,它就会出现。
我在这里做错了什么?
【问题讨论】:
-
也许在启动阶段还为时过早 - 这可能是它在资源中起作用的原因:当资源被解析和加载时,引导程序被实例化 - 也许 OnStartup 对 CM 来说太早了注册东西所需的位。创建一个新的引导程序调用
Bootstrapper.Start,所以你不需要手动调用它 -
哦,顺便说一句,你在你的应用构造函数中调用了
InitializeComponent吗?这通常很重要! -
感谢您的回复,但我希望它在尝试加载任何视图模型或视图之前运行一段代码。然后当我准备好调用它。这就是我尝试在代码中启动它的原因。
-
配置/OnStartUp/StartRuntime/StartDesigntime 等引导程序虚拟方法的重点不就是这样吗?在CM打开根视图之前将代码放在那里进行配置
标签: wpf caliburn.micro