我正在调查卡特尔。我开始关注WPF开发人员入门。我使用模板创建初始项目并运行它。一切都很好。
然后我详细了解生成的源文件。我看到了对DataWindow,StyleHelper和ViewModelBase的引用。我在调试器中运行并观察Catel调试输出,步进以便在事件发生时我可以看到。
这一切都很神奇。
视图管理器以某种方式运行并注册MainWindow。并调用ViewModelFactory来创建MainWindowViewModel,并设置MainWindow DataContext。
这一切如何发生?我错过了一个文档,它为我提供了一个应用程序启动时的事件序列。我不愿意信仰它,并且不愿意潜入巨大的代码库,而不知道从哪里开始。我已经阅读了CodeProject文章和文档的介绍部分。
这是以某种方式驱使这些行为吗?它们是如何被调用的?我找不到在我途中启动我的线程。
除此之外:我看看Catel,因为我发现自己为一个重要的MVVM应用程序实现了一个 ton 的管道,并且决定其他人已经解决了这个问题。
感谢任何线索。 (谢谢,Geert。这是一项重要的工作。)
-reilly。
答案 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(将很快发布)几乎完成功能,将阻止您进行许多必须经历的重大变化(当然它会更好: - ))