Windows MVVM引用程序集

Windows MVVM引用程序集,windows,mvvm,view,model,viewmodel,Windows,Mvvm,View,Model,Viewmodel,我正在处理的应用程序中实现MVVM模式,我的解决方案中有3个独立的程序集,Model、View和ViewModel。视图模型引用了模型,视图引用了视图模型。 在我的模型中我有一个类事件,在视图模型中我创建了一个可观察集合。 问题是当我试图将此集合设置为视图中列表视图的数据上下文时。我得到这个错误: error CS0012: The type 'Model.Event' is defined in an assembly that is not referenced. You must add

我正在处理的应用程序中实现MVVM模式,我的解决方案中有3个独立的程序集,
Model、View和ViewModel
视图模型
引用了
模型
视图
引用了
视图模型
。 在我的
模型中
我有一个类
事件
,在
视图模型中
我创建了一个
可观察集合
。 问题是当我试图将此集合设置为
视图中
列表视图
数据上下文
时。我得到这个错误:

error CS0012: The type 'Model.Event' is defined in an assembly that is not referenced. You must add a reference to assembly 'Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

我想让应用程序尽可能地解耦,但这并不是让我的应用程序解耦。我知道,当我将模型引用添加到视图中时,不会出现错误,但我不希望视图具有模型引用。如何使其工作?

让视图部件引用模型部件没有什么错。我认为这是常见的做法,也是让模型显示在视图中的唯一方法。假设您是从视图的xaml(不是代码隐藏)绑定到视图模型的ObservableCollection,我在这里看不到紧密耦合的程序集。

让视图程序集引用模型程序集没有什么错。我认为这是常见的做法,也是让模型显示在视图中的唯一方法。假设您从视图的xaml(不是代码隐藏)绑定到视图模型的ObservableCollection,我在这里看不到紧密耦合的程序集。

如果您希望视图能够显示
事件,它必须有一个引用,就这么简单。我想您可以为您的模型创建第四个接口程序集,并让您的模型程序集和视图程序集都引用它。如果您希望视图能够显示
事件
,它必须有一个引用,就这么简单。我想您可以为您的模型创建第四个接口程序集,并让您的模型程序集和视图程序集都引用它@卡梅隆·麦克法兰……有点像在没有指示的情况下改变车道。仅仅因为某些事情是常见的做法并不意味着这是一个好主意。:)@卡梅隆麦克法兰…有点像在没有指示的情况下改变车道。