我开发了Silverlight RIA应用程序。假设站点链接为http://MySilverlightApp
在我的main.xaml页面中,我导航到另一个视图(例如Page1)。因此,当我转到http://MySilverlightApp
时,我会被转到http://MySilverlightApp/#/Page1
在这个Page1.xaml中,我显示了一个单选按钮列表。每个单选按钮都有一个ID,在选择单选按钮时,我会在页面上显示更多内容。
我想从网址本身传递该ID,例如http://MySilverlightApp/#/Page1?ID=13
然后当我的页面加载时,我可以获取该ID并选择单选按钮(ID为13)并在那里显示材料。
我怎样才能做到这一点?我想在后面的代码中抓取字符串但是在Page1视图模型中。 (不绑定,只想检索值)
答案 0 :(得分:0)
好的,这就是我做的。
在我的代码后面,我介绍了一个查询属性,并找出是否传递了任何参数。
private string ParamValue
{
get
{
string paramValue = "";
const string paramName = "ID";
if (NavigationContext.QueryString.ContainsKey(paramName))
paramValue = NavigationContext.QueryString[paramName];
return paramValue;
}
}
在我的Loaded Event处理程序中,我调用视图模型的公共方法并传入ID。 像
这样的东西private void Page1_Loaded(object sender, RoutedEventArgs e)
{
if (!String.IsNullOrEmpty(ParamValue))
{
Page1iewModel page1ViewModel = this.DataContext as Page1ViewModel ;
page1ViewModel.SetID(ParamValue);
}
}