首先,这是我与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方法,它是哪个成员。怎么称呼它。
感谢您的帮助!
答案 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引导程序实现提供更广泛的图景。