我正在为我的 Windows Phone 8 应用程序使用 NavigationContext.QueryString。例如,我在导航字符串和 OnNavigatedTo 中设置了一个类似 ItemId 的 URI 标识符,我解析 Id 并通过 linq 读取 Item。
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;
这真的是推荐的方式吗?