1

我开发了一个 Silverlight RIA 应用程序。假设站点链接http://MySilverlightApp 在我的 main.xaml 页面中,我导航到不同的视图(例如 Page1)。所以当我去的时候,http://MySilverlightApp我会被路由到http://MySilverlightApp/#/Page1

在这个 Page1.xaml 中,我显示了一个单选按钮列表。每个单选按钮都有一个 ID,选择单选按钮后,我会在页面上显示更多内容。

我想从 url 本身传递该 ID,例如http://MySilverlightApp/#/Page1?ID=13

然后,当我的页面加载时,我可以获取该 ID 并选择单选按钮(ID 为 13)并在此处显示材料。

我怎样才能做到这一点?我想不是在后面的代码中而是在 Page1 视图模型中获取字符串。(不绑定,只是想检索值)

4

1 回答 1

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);
            }
        }
于 2012-12-08T09:16:24.733 回答