在Silverlight中使用导航服务时设置视图的ViewModel

时间:2011-04-13 21:41:28

标签: silverlight mvvm navigationservice

我无法找到如何创建视图模型的实例,并将其设置为视图的视图模型,我将导航到使用Silverlight导航框架。

例如,如果我有一个带有视图模型的列表视图,我希望列表视图使用导航服务导航到详细信息视图,并将详细信息视图的视图模型设置为相同的实例查看列表视图正在使用的模型。

根据我的阅读和理解,使用Navigate方法时无法传递数据。导航方法不会返回将导航到的视图实例?

所以我的问题是......一旦我使用.Navigate(URI)将我的silverlight应用程序导航到详细视图,如何在导航离开之前将详细视图的viewmodel设置为列表视图中的实例列表显示。

2 个答案:

答案 0 :(得分:0)

首先,您的声明“从我已经阅读并理解的,在使用Navigate方法时无法传递数据”是不正确的。您可以通过参数传递简单的数据值。

您还可以使用导航框架在视图之间共享datacontext。检查这篇SL3文章:

http://timheuer.com/blog/archive/2009/04/03/share-data-between-navigation-pages-in-silverlight-3.aspx

答案 1 :(得分:0)

您可以使用查询字符串将参数传递给要导航到的视图,然后使用这些参数创建ViewModel。

这是一个post about "Site Navigation Basics in Silverlight 4",它显示了如何在Silverlight导航中使用查询字符串参数。