具有子窗口和共享数据的Silverlight MVVM模式

时间:2011-05-20 15:53:27

标签: silverlight silverlight-4.0 mvvm childwindow

我有一个用于显示两个网格的“父”控件的ViewModel。第一个网格具有父信息,第二个网格显示所选父级的相关子项。

这没关系。但问题是我必须提供更新按钮。单击它后,用户将看到所选父项的子项,并选择是否删除它们。这是通过子窗口完成的,包含显示相关子节点的相同网格,但网格处于“启用”模式。

所以问题是MVVM使用什么模式: 1)获取子窗口的数据? 2)在子窗口内成功更新后,更新父级?

谢谢,

1 个答案:

答案 0 :(得分:2)

您应该考虑使用中介模式来启用控件的视图模型与子窗口的视图模型之间的通信。

请参阅this answer以获取介体模式的基本概述。使用此模式,您可以采用的一种方法是在单击“更新”按钮时发布消息,该按钮由显示子窗口的侦听器处理(该消息将携带子窗口数据,并在之前传递到数据上下文)被显示)。成功更新后,子窗口将发布父级侦听的消息,此消息将携带更新父级的信息。

您可能还想查看PRISM 4指南中的User Interaction Patterns部分。即使您没有使用PRISM,也要仔细考虑所采用的一般原则和方法。