使用MVVM Light从ViewModel查看通知

时间:2012-08-25 23:07:27

标签: silverlight mvvm mvvm-light

在我的silverlight应用程序中,我需要从ViewModel向View发送通知。作为对此的响应,应该调用UI控件上的方法。我知道有两种方法可以做到这一点:

1)在ViewModel中引发一个事件,并在后面的View代码中处理它。
2)从ViewModel发送消息(使用MVVM Light消息支持)并在后面的View代码中回复此消息。

我想知道是否有办法在不使用View后面代码中的代码的情况下完成此操作,例如通过XAML中的某种数据绑定?

请分享任何想法。

有关View收到ViewModel通知时应执行的操作的其他信息
在视图的XAML中,我声明了一个自定义Silverlight网格控件的实例,它具有以下方法:
public void FileExportFinished(bool fileExportSucceeded)
我想从XAML调用此方法,以响应从ViewModel收到的通知,传递随通知收到的布尔值。

2 个答案:

答案 0 :(得分:3)

是的......你可以在依赖属性的帮助下完成它。

  1. 为该视图创建依赖项属性(将其设为布尔类型,因为我们只需要此属性来调用另一个视图方法)。
  2. 在其属性已更改回调中,请调整所需的视图方法。
  3. 然后将DependencyProperty与ViewModel中的属性绑定。
  4. 因此,当您需要更新视图时,只需设置上面提到的绑定属性,这将触发属性更改后调用Dependency属性并在那里形成所需的视图方法将被调用。

答案 1 :(得分:0)

为什么不简单地在你的viewmodel和xaml中的DataTrigger中使用Property?

如果您想要某种对话框弹出窗口,可以使用对话服务。你应该把你想做的事情添加到你的问题中。通知到达时您的观点会发生什么?

btw Messenger用于viewmodel-viewmodel通信,因此不是一个选项。