Catel应用程序初始化

时间:2014-08-27 17:50:26

标签: catel

我正在调查卡特尔。我开始关注WPF开发人员入门。我使用模板创建初始项目并运行它。一切都很好。

然后我详细了解生成的源文件。我看到了对DataWindow,StyleHelper和ViewModelBase的引用。我在调试器中运行并观察Catel调试输出,步进以便在事件发生时我可以看到

这一切都很神奇。

视图管理器以某种方式运行并注册MainWindow。并调用ViewModelFactory来创建MainWindowViewModel,并设置MainWindow DataContext。

这一切如何发生?我错过了一个文档,它为我提供了一个应用程序启动时的事件序列。我不愿意信仰它,并且不愿意潜入巨大的代码库,而不知道从哪里开始。我已经阅读了CodeProject文章和文档的介绍部分。

这是以某种方式驱使这些行为吗?它们是如何被调用的?我找不到在我途中启动我的线程。

除此之外:我看看Catel,因为我发现自己为一个重要的MVVM应用程序实现了一个 ton 的管道,并且决定其他人已经解决了这个问题。

感谢任何线索。 (谢谢,Geert。这是一项重要的工作。)

-reilly。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您正在寻找内部工作的高级信息。我认为文档的this part可能对您有用。

它可能无法提供您要查找的所有信息,但它应提供一些信息。

关于一些基本问题:

1)启动窗口在App.xaml中定义(即标准WPF) 2)因为它派生自DataWindow,所以它使用WindowLogic =>子句,。 LogicBase使用 IViewModelLocator 根据命名约定查找正确的视图模型(全部记录) 3)然后 IViewModelFactory 将实例化vm(使用依赖注入)并将其返回到将其设置为datacontext的逻辑。

请注意,正如高级文档所述,Catel会注入一个额外的层来区分外部datacontext和VM datacontext(窗口或用户控件内容)。

PS。我真的建议通过NuGet开始使用最新的预发布。 Catel 4.0(将很快发布)几乎完成功能,将阻止您进行许多必须经历的重大变化(当然它会更好: - ))