2011-03-24 24 views
0

目前,我没有使用任何种类的MVVM框架。因此,在导航页面上获取查询字符串数据库值非常简单。我的场景很常见,我将一个实体的主关键字从“主页面”传递到“详细信息页面”。如何使用查询字符串参数初始化视图模型

现在,我试图权衡使用MVVM方法的好处,这是一个很好的简单操作的例子,可以在像MVVM这样的框架中变得复杂。这可能是因为我一直在寻找错误的地方,但是却无法找到这个在线的例子,这有点令人沮丧。

谢谢!

回答

0

通过在视图中插入一些代码将查询字符串传递给ViewModel(可能使用工厂模式),您并未打破MVVM模式。

this.DataContext = ViewModelFactory.Create(HtmlPage.QueryString["MyVar"]); 

你应该使用这些模式来帮助你,并与常识使用它们,有时他们会过于复杂的事情,事与愿违可扩展性/可维护性。

+0

我并没有把代码放在代码隐藏之外,但我认为会有一种更适合MVVM框架的优雅方式。将参数传递给视图看起来像是一种普遍的特征/行为。您是如何在使用Silverlight MVVM进行开发时完成将主键传递给“详细”视图的? – 2011-03-26 00:08:27

+0

@Idrise_Coulombe - 实际上,您可以使用静态HtmlPage成员从ViewModel访问查询字符串。唯一的一点是你会使视图模型依赖于System.Windows.Browser。 – Bas 2011-03-26 14:27:25