我想知道是否有人能就我遇到的Silverlight问题给我一些指导?
我现在正在做的是使用MVVM模式在Silverlight中构建一个页面来检索和显示我的数据。我的页面将是一个标准的“列表”类型页面,它使用数据网格来显示和过滤数据。
我想要做的是,如果用户单击此列表页面上的编辑按钮,我想导航到一个详细信息页面,其中包含我想要绑定到同一数据集合的数据表单。绑定到列表页面的数据网格。我想要发生的是List ViewModel必须创建Details Page并将Details Page datacontext设置为它自己(作为List ViewModel的实例)。我不确定如何创建视图,导航到它并将引用传递给视图模型。
您可能想知道为什么我想要一个收集的详细信息页面。这样我就可以模拟用户在当前访问应用程序中熟悉的行为。大多数情况下,当用户过滤列表视图时,它会派上用场,他们可以进入一个页面,在那里他们可以导航和编辑过滤器中的任何结果,而无需反复打开和关闭详细信息页面。
答案 0 :(得分:1)
MVVM非常适合这种情况。您是正确的假设它们共享相同的视图模型,因为数据是相同的,您可以一次自动更新两个位置的数据。
但是,我会避免让视图模型创建视图。这通常被视为实现MVVM的错误方式,因为它创建了从视图模型到视图的耦合,这可能会让您以后遇到麻烦。
带有示例代码的解决方案在this博文中介绍。