0

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

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

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

请分享任何想法。

有关视图在收到来自 ViewModel 的通知时应该做什么的附加信息 在视图
的 XAML 中,我声明了一个自定义 Silverlight 网格控件的实例,它具有以下方法:
public void FileExportFinished(bool fileExportSucceeded)
我想从 XAML 调用此方法以响应通知从 ViewModel 接收,传递一个与通知一起接收的布尔值。

4

2 回答 2

3

是的......你可以在依赖属性的帮助下做到这一点。

  1. 为该视图创建一个依赖属性(使其成为布尔类型,因为我们只需要此属性来调用另一个视图方法)。
  2. 在其属性更改回调中,规定调用您所需的视图方法。
  3. 然后将 DependencyProperty 与 ViewModel 中的属性绑定。
  4. 因此,当您需要更新视图时,只需设置上面提到的绑定属性,这将触发 Dependency 属性的属性更改回调,并在那里调用您所需的视图方法。
于 2012-08-26T07:15:57.747 回答
0

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

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

顺便说一句,Messenger 用于 viewmodel-viewmodel 通信,所以这不是一个选项。

于 2012-08-27T09:44:17.477 回答