Wpf 视图和视图模型之间的消息交换是否打破了MVVM模式

Wpf 视图和视图模型之间的消息交换是否打破了MVVM模式,wpf,mvvm,view,viewmodel,mvvm-light,Wpf,Mvvm,View,Viewmodel,Mvvm Light,我有一个复杂的视图,其中包含需要更新的用户控件。到目前为止,最简单的方法是使用消息中介服务作为MVVM Light Messenger。但是在这种情况下,我需要在视图中包含一些处理代码,这在MVVM中并不理想 视图和视图模型之间的消息交换是否打破了MVVM模式 编辑:稍微清除一些内容,例如,如果我需要以编程方式向视图添加一个新的UserControl,该视图由ViewModel发出信号。如何实现这一点?MVVM!=没有代码隐藏。您的视图中应该存在UI代码。@那么,如何向视图发送有关其UserCo

我有一个复杂的视图,其中包含需要更新的用户控件。到目前为止,最简单的方法是使用消息中介服务作为MVVM Light Messenger。但是在这种情况下,我需要在视图中包含一些处理代码,这在MVVM中并不理想

视图和视图模型之间的消息交换是否打破了MVVM模式


编辑:稍微清除一些内容,例如,如果我需要以编程方式向视图添加一个新的UserControl,该视图由ViewModel发出信号。如何实现这一点?

MVVM!=没有代码隐藏。您的视图中应该存在UI代码。@那么,如何向视图发送有关其UserControl更新的信号?如何向视图发送有关视图中更改的信号?不确定你在问什么,因为你这样做了,但这是有道理的。如果您谈论的是视图和视图模型之间的通信,那么可以这样想。。。VM表示应用程序的状态。随着状态的更改(由于业务逻辑或用户操作),视图模型也会更改。视图在观察这些变化时会做出反应。如果用户通过视图更改状态,这些更改通常通过绑定传输到VM。所以,去做吧。如果没有一个具体的例子,我就不能更清楚地说明这个问题了。@Will很抱歉造成混淆,我已将我的问题更新为更具体一点。例如,我找不到一种使用绑定将UserControls以编程方式添加到视图的方法。在MVVM中,这不是“以编程方式”完成的。您的状态由ViewModel及其表面上显示的模型表示。视图绑定到这些属性。当绑定更新时,视图被编码为寻找向用户显示状态的最合适方式。这通常通过数据模板完成。请看我的答案,这里有一个简单的例子,这就是你要找的吗?