将此项目添加为引用将导致循环依赖项 mvvm

本文关键字:循环 依赖 mvvm 引用 项目 添加 | 更新日期: 2023-09-27 18:33:10

好吧,我看到了很多关于这类问题的解决方案,但我就是无法解决我的问题。我正在开发一些 wpf/mvvm 应用程序。我的应用结构如下:

  • 一个视图模型项目
  • 一个项目可供查看
  • 一个 WCF 服务项目

所以问题是这样的:我需要从我的视图模型类为我的窗口分配新的数据上下文。 像这样的东西(在我的视图模型类中):

SomeWindow window = new SomeWindow();
window.DataContex = this.someViewModel;

问题是我无法访问我的 View 类。我将视图模型的引用添加到我的视图项目中,但无法将视图的引用添加到我的视图模型中,因为我收到上述错误。我该如何解决这个问题??

将此项目添加为引用将导致循环依赖项 mvvm

我不明白为什么有必要在视图模型项目中分配数据上下文(为什么不在视图项目中)。但是,如果您需要以这种方式执行此操作,最常见的方法是为这些目的创建另一个(中间)项目。这个新项目将引用视图项目和视图模型项目。

另一方面,ViewModels和Views通常位于同一项目中(仅在其他文件夹/命名空间中),因此在这种情况下不存在该问题。

视图

模型不需要"知道"/引用视图。 因此,您的视图模型项目中不需要引用。

如果要更改视图的数据上下文 - 只需更改绑定到该视图的视图模型的"工作区"属性。