checkedParcels
チェックされたID( )のリストを別のページに渡して、それに応じて詳細のリストを表示したいと思います。
このために、最初のViewModelで、別のページに移動できる実行コマンドを実装しました。そのコードは次のとおりです。
Uri uri = new Uri("/UnitListForParcelPage?checkedParcel=" + checkedParcels,UriKind.Relative);
navigationService.NavigateTo(uri);
ここで2番目のページに移動できます。ブラウザに表示されているアドレスです。
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プロパティにバインドしたいだけです
私はこのアプローチを使用して、viewmodelをviewにバインドしました。
<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>