2011-04-11 86 views
0

我想知道如果有人可以给我一些关于我遇到的Silverlight问题的指导吗?如何从视图模型导航到视图

我现在正在做的是使用MVVM模式在Silverlight中构建一个页面来检索和显示我的数据。我的页面将成为标准的“列表”类型页面,使用数据网格显示和过滤数据。

我想要做的是,如果用户单击此列表页面上的编辑按钮,我想导航到一个详细信息页面,该页面将包含一个数据表单,我想将它绑定到相同的数据集合绑定到列表页面的数据网格。我想要发生的事情是List ViewModel必须创建Details Page并将Details Page datacontext设置为自身(即List ViewModel的实例)。我不知道如何创建视图,导航到视图并将引用传递给视图模型。

您可能想知道为什么我想要一个采集集合的详细信息页面。这样我就可以模拟我的用户在他们当前的访问应用程序中熟悉的行为。大多数情况下,当用户过滤列表视图时,它可以方便地进入页面,在页面中他们可以导航并编辑过滤器中的任何结果,而无需重复打开和关闭详细信息页面。

回答

1

MVVM非常适合这一点。假设他们共享相同的视图模型,因为数据是相同的,您可以自动更新这两个位置的数据。

但是,我会避免让视图模型来创建视图。这常常被视为实现MVVM的错误方式,因为它会创建从视图模型到视图的耦合,这可能会在以后引发麻烦。

具有示例代码的解决方案在this博客文章中进行了描述。

+0

我有点困惑。您提到的博客文章演示了如何将网格视图变为编辑模式。我真的知道如何创建一个视图,将它的视图模型设置为我的列表视图,并导航到该视图。谢谢 – silverlightStumped 2011-04-11 23:45:07