在Silverlight URL中传递参数

时间:2012-12-07 03:17:32

标签: silverlight ria silverlight-5.0

我开发了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视图模型中。 (不绑定,只想检索值)

1 个答案:

答案 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);
            }
        }