我正在为我的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;
这真的是推荐方式吗?