MVVM在WPF中如何与视图模型进行通信
本文关键字:模型 视图 通信 WPF MVVM | 更新日期: 2023-09-27 18:27:38
我想我对MVVM中的通信方式还有点模糊。我读到您不应该使用事件与视图模型进行通信,所以我假设您发送了一个命令。
然而,命令实际上在视觉树(视图)中弹出,对吗?因此它可以到达能够处理该命令的某个目标控制。那么目标控件是否有一个可以修改模型的视图模型?
对不起,我真的很困惑如何将命令从视图获取到模型。我认为,以另一种方式获取信息只是一个简单的问题,即让模型实现InotifyProperty更改,告诉视图模型它已经更改,然后让视图模型实现InitifyProperties更改,以便视图可以绑定到视图模型并更新属性。
http://blogs.msdn.com/blogfiles/erwinvandervalk/WindowsLiveWriter/ImplementingtheModelViewViewModelpattern_D996/image_14.png
并不是所有的命令都是bubble-这些都是RoutedUICommands,它们只是框架提供的ICommand接口的一个特定实现。您可以实现自己的ICommand对象,这些对象具有自定义行为,其行为与普通对象一样(没有冒泡、隧道)。如果在ViewModel中创建它们,某些视图对象(如按钮和菜单项)可以通过它们的"命令"属性直接绑定到它们。