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

时间:2015-04-10 15:28:18

标签: c# wpf caliburn.micro

首先,这是我与Caliburn.Micro,C#和WPF的第一次接触。我已经完成了Calibur.Micro教程并在#34; All about actions"和第一视图子部分。作者为Silverlight应用程序编写了如下解决方案:

public class MefBootstrapper : BootstrapperBase
{
    //same as before

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

    //same as before
 } 

所以这是解决方案如何说bootstrapper哪个视图用作显示的基础。关于WPF我只获得了神秘的信息:

  

在这种情况下,我们只是重写OnStartup,实例化视图   我们自己并将其设置为RootVisual(或者在案例中调用Show)   WPF)。

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

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

所以一个简单的实现就像这样,

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

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