【发布时间】:2012-12-24 09:20:10
【问题描述】:
我想将检查的 ID 列表 (checkedParcels) 传递到另一个页面以相应地显示详细信息列表。
为此,在第一个 ViewModel 中,我实现了可以导航到另一个页面的命令。这是代码:
Uri uri = new Uri("/UnitListForParcelPage?checkedParcel=" + checkedParcels,UriKind.Relative);
navigationService.NavigateTo(uri);
我可以导航到第二页,这里是浏览器中显示的地址:
http://example.com/PropMgmtTestPage.aspx#/UnitListForParcelPage?checkedParcel=System.Linq.Enumerable+WhereEnumerableIterator%601%5BPropMgmt.ParcelServiceRef.Parcel%5D
我的问题是我正在使用 ViewModel 在此页面上执行操作,但我找不到任何方法来访问通过查询字符串传递的值。
更新: 在页面代码隐藏上,我添加了以下代码:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string PSTR = NavigationContext.QueryString["checkedParcel"];
MessageBox.Show(PSTR);
}
MessageBox 显示正确的值现在我只想将它绑定到 viewmodel 属性
我已使用此方法将视图模型绑定到视图:
<navigation:Page.Resources>
<helpers:SimpleViewModelLocator ViewModelKey="UnitTransFormViewModel" x:Key="viewModelLocator"/>
</navigation:Page.Resources>
<navigation:Page.DataContext>
<Binding Source="{StaticResource viewModelLocator}" Path="ViewModel"/>
</navigation:Page.DataContext>
【问题讨论】:
标签: c# silverlight mvvm query-string silverlight-5.0