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

C# 将此项目添加为引用将导致循环依赖关系mvvm,c#,wpf,mvvm,C#,Wpf,Mvvm,我看到了很多解决这类问题的方法,但我就是解决不了我的问题。我在一些wpf/mvvm应用程序上工作。我的应用程序的结构如下: ViewModel的一个项目 一个项目供查看 一个wcf服务项目 所以问题是:我需要从viewmodel类为我的窗口分配新的datacontext。类似这样的内容(在我的视图模型类中): 问题是我无法访问我的视图类。我将视图模型的引用添加到视图项目中,但无法将视图的引用添加到视图模型中,因为我遇到了上述错误。 如何解决此问题???我无法理解为什么需要在viewModel

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

  • ViewModel的一个项目
  • 一个项目供查看
  • 一个wcf服务项目
所以问题是:我需要从viewmodel类为我的窗口分配新的datacontext。类似这样的内容(在我的视图模型类中):

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

我无法理解为什么需要在viewModels项目中指定数据上下文(为什么不在Views项目中)。但是如果您需要这样做,最常见的方法是为这些目的创建另一个(中间)项目。此新项目将引用“视图”项目和“视图模型”项目


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

我无法理解为什么需要在视图模型项目中指定数据上下文(为什么不在视图项目中)。但是如果您需要这样做,最常见的方法是为这些目的创建另一个(中间)项目。此新项目将引用“视图”项目和“视图模型”项目


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

视图模型不需要“知道”/引用视图。因此,在viewmodel项目中不需要引用


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

viewmodel无需“知道”/引用该视图。因此,在viewmodel项目中不需要引用


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

我没有说明为什么需要这样做,因为我想保持简短,只想抓住问题的关键。无论如何,我确实尝试添加中间项目,但我得到了相同的错误。我可以添加视图的引用,但我不能添加ViewModel的引用。中间项目应该同时包含两个引用(视图项目,viewModels项目),这就是为什么使用它的原因。我创建了一些带有引用的中间项目,但当我创建窗口类的对象时,我只能使用初始化组件,而不能使用其他任何组件。我如何访问DataContext?我没有描述为什么我需要这样做,因为我想保持简短,只想抓住问题的关键。无论如何,我确实尝试添加中间项目,但我得到了相同的错误。我可以添加视图的引用,但我不能添加ViewModel的引用。中间项目应该同时包含两个引用(视图项目,viewModels项目),这就是为什么使用它的原因。我创建了一些带有引用的中间项目,但当我创建窗口类的对象时,我只能使用初始化组件,而不能使用其他任何组件。如何访问DataContext?如何移动引用?WCF不应该引用任何人,视图应该引用VM,可能还有WCF,VM应该引用WCF而不是视图。如果类型在错误的程序集中,请移动它们。移动引用,还有其他方法吗?WCF不应该引用任何人,视图应该引用VM,可能还有WCF,VM应该引用WCF而不是视图。如果类型位于错误的程序集中,请移动它们。
SomeWindow window = new SomeWindow();
window.DataContex = this.someViewModel;