WPF中的MVVM如何与viewmodel进行通信

时间:2013-08-14 20:15:13

标签: c# wpf xaml mvvm

我想我对MVVM中的通信方式仍然有点朦胧。我读到你不应该使用事件与viewmodel通信,所以我假设你发送命令。

然而,命令实际上在可视树(视图)中冒出来,对吧?所以它可能会达到一些可以处理命令的目标控制。那个目标控件是否有一个可以修改模型的viewmodel?

抱歉,我真的很困惑如何从视图中获取命令到模型。我假设以另一种方式获取信息只是让模型实现Inotifypropertychanged以告诉viewmodel它已经更改然后让viewmodel实现inotifypropertychanged以便视图可以绑定到viewmodel并让属性更新。 / p>

http://blogs.msdn.com/blogfiles/erwinvandervalk/WindowsLiveWriter/ImplementingtheModelViewViewModelpattern_D996/image_14.png

1 个答案:

答案 0 :(得分:2)

并非所有命令都冒泡 - 这些是RoutedUICommands,它们只是框架提供的ICommand接口的特定实现。您可以实现自己的ICommand对象,这些对象具有自定义行为,并且就像普通对象一样(没有冒泡,隧道)。如果在ViewModel中创建它们,某些View对象(如Buttons和MenuItems)可以通过其“Command”属性直接绑定到它们。