gpt4 book ai didi

mvvm - Prism 6和构造函数调用

转载 作者:行者123 更新时间:2023-12-03 05:21:12 24 4
gpt4 key购买 nike

基于Brian Lagunas(YouTube Link)的视频,我开始使用Prism6。我有点困惑,在其中调用MainWindowViewModel的构造函数。我几乎复制了他的项目,但找不到该部分。如果我在构造函数中设置一个断点,它将永远不会到达那里。
他没有在视频中显示某些内容吗?

最佳答案

如果您查看此演示文稿的code,可以看到Brian正在使用Prism的附加依赖项属性通过ViewModelLocator耦合 View 和 View 模型。

prism:ViewModelLocator.AutoWireViewModel="True"

在大约33:00的视频中,他给出了ViewModelLocator的工作原理的完整解释:首先,它通过约定从 View 名称中构建viewmodel名称。然后,它将通过IoC容器或反射将该名称解析为类型。 IoC非常简单:输入类型或名称,它将为您提供实例。对于反射部分(没有容器运行时),Prism使用 Activator type to create a new instance

在GitHub上可用的最终代码中,Brian将Unity用作IoC容器。在 bootstrap 中为其 subview (ViewA/ViewB)进行自定义映射。由于没有MainViewModel的自定义映射,因此发生以下过​​程:
  • 该应用程序以MainWindow作为启动窗口启动。
  • ViewModelLocator的附加属性被“触发”,内部逻辑将从MainWindow映射到MainWindowViewModel
  • 当我们使用Unity时,ViewModelLocator要求一个viewmodel的实例
  • Unity将创建一个新的MainWindowViewModel对象,构造函数将被命中

  • 因此,您不会在代码中看到新的xxxViewModel(),但确实会创建它。这意味着在添加依赖项时,您在硬编码对象创建方面具有更大的灵活性。

    关于mvvm - Prism 6和构造函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32874913/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com