添加此项目作为参考将导致循环依赖mvvm

时间:2013-09-27 07:36:04

标签: c# wpf mvvm

我在这类问题上看到了很多解决方案,但我无法解决我的问题。我在一些wpf / mvvm应用程序上工作。我的应用程序结构如下:

  • ViewModel的一个项目
  • View的一个项目
  • 一个wcf服务项目

所以问题是这样的:我需要从我的viewmodel类中为我的窗口分配新的datacontext。像这样(在我的视图模型类中):

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

问题是我无法访问我的View类。我将viewmodel的引用添加到我的视图项目中,但是无法将我的视图引用添加到我的viewmodel中,因为我得到了上述错误。 我怎么解决这个问题?

2 个答案:

答案 0 :(得分:3)

我无法理解为什么有必要在viewModels项目中分配数据上下文(为什么不在Views项目中)。但是如果你需要这样做,最常见的方法是为这些目的创建另一个(中间)项目。这个新项目将引用Views项目和ViewModels项目。

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

答案 1 :(得分:1)

viewmodel无需“知道”/引用视图。所以你在viewmodel项目中不需要引用。

如果您想更改视图的datacontext,您只需更改绑定到该视图的viewmodel的“workspace”属性。