1

我想我对 MVVM 中的通信方式仍然有些模糊。我读到您不应该使用事件与视图模型进行通信,所以我假设您发送命令。

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

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

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

4

1 回答 1

2

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

于 2013-08-14T20:31:01.090 回答