我想將檢查標識(checkedParcels
)的列表傳遞到另一個頁面以相應地顯示詳細信息列表。如何訪問viewmodel中的查詢字符串值?
對於這第一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
我的問題是我使用的視圖模型來在這個頁面上執行操作,但我無法找到任何方法來訪問通過查詢字符串傳遞的值。
更新: 在頁面代碼隱藏我已經加入這個代碼:
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>
我有更新我的問題 –
我也更新我的答案。請看看它。 – ovais
謝謝..我一直在尋找它... ... :) –