【问题标题】:How to navigate to a view from the viewmodel如何从视图模型导航到视图
【发布时间】:2011-04-11 00:01:16
【问题描述】:

我想知道是否有人可以就我遇到的 Silverlight 问题给我一些指导?

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

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

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

【问题讨论】:

    标签: silverlight mvvm view viewmodel navigationservice


    【解决方案1】:

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

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

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

    【讨论】:

    • 我有点困惑。您提到的博客文章演示了如何使网格视图进入编辑模式。我真的很关心如何创建视图,将它的视图模型设置为我的列表视图并导航到该视图。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多