0

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

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

这一切都很神奇。

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

这一切是如何发生的?我缺少为我整理应用程序启动时事件序列的文档。我不愿意相信它,也不愿意在不知道从哪里开始的情况下潜入庞大的代码库。我已阅读 CodeProject 文章和文档的介绍部分。

这是否以某种方式摆脱了行为?它们是如何被调用的?我只是找不到让我开始前进的线索。

旁白:我看 Catel 是因为我发现自己为一个重要的 MVVM 应用程序实施了大量的管道,并决定其他人已经解决了这个问题。

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

-赖利。

4

1 回答 1

0

如果我理解正确,您正在寻找内部运作的高级信息。我认为您可能会对文档的这一部分感兴趣。

它可能无法提供您正在寻找的所有信息,但它应该提供一些信息。

关于一些基本问题:

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

请注意,正如高级文档告诉您的那样,Catel 注入了一个额外的层来区分外部数据上下文和 VM 数据上下文(窗口或用户控件内容)。

附言。我真的建议开始通过 NuGet 使用最新的预发布版本。Catel 4.0(将很快发布)功能几乎已完成,可以防止您必须经历许多重大更改(当然更好:-))

于 2014-08-27T19:13:35.023 回答