Windows Phone 8 アプリに NavigationContext.QueryString を使用しています。たとえば、ナビゲーション文字列に ItemId のような URI 識別子を設定し、OnNavigatedTo で Id を解析し、linq を介してアイテムを読み取ります。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
try
{
int itemId = int.Parse(NavigationContext.QueryString["itemId"]);
_item = App.MainViewModel.GetItem(itemId);
DataContext = _item;
}
catch (KeyNotFoundException ex)
{
Debug.WriteLine(ex.Message);
throw;
}
}
興味深い代替手段を見つけたので、あなたの意見を聞きたいです。
// in the calling page
PhoneApplicationService.Current.State["Item"] = App.MainViewModel.GetItem(123);
// in the destination page
Item item = PhoneApplicationService.Current.State["Item"] as Item;
これは本当に推奨される方法ですか?