用于 WPF 应用程序的 Caliburn Micro View First Bootstrapper OnStartup

Caliburn Micro View First Bootstrapper OnStartup for WPF application

首先这是我第一次接触Caliburn.Micro、C#和WPF。我已经完成了 Calibur.Micro 教程,并在“All about actions”和 First View 小节的那一刻停止了。作者为 Silverlight 应用程序编写的解决方案如下:

public class MefBootstrapper : BootstrapperBase
{
    //same as before

    protected override void OnStartup(object sender, StartupEventArgs e)
    {
        Application.RootVisual = new ShellView();
    }

    //same as before
 } 

所以这是解决方案,如何说引导程序将视图用作显示的基础。关于 WPF 我只得到神秘的信息:

In this scenario, we simply override OnStartup, instantiate the view ourselves and set it as the RootVisual (or call Show in the case of WPF).

所以 Silverlight 示例对我来说非常清楚,我们只需手动将适当的视图实例化为 属性 Application.RootVisual。但是对我来说完全不清楚 Show 方法是什么,它是哪个成员。怎么称呼。

感谢帮助!

Caliburn.Micro 提供了一个 BootstrapperBase class,你可以从中继承你自己的引导程序 class。它有一个虚拟方法 OnStartup,您可以覆盖它来初始化 shellview。它还提供了一个实用方法DisplayRootViewFor,可用于显示指定viewmodel类型的相关视图。

所以一个简单的实现看起来像这样,

protected override void OnStartup(object sender, StartupEventArgs e)
{
    DisplayRootViewFor<TShellViewModel>();
}

其中 TShellViewModel 是您的 Shell ViewModel 的类型。框架将使用约定解析视图,并做必要的基础工作以显示相同的视图。 This link 将为基于 MEF 的 IOC 支持的 WPF 引导程序实现提供更广阔的视野。