C# WP8.1应用程序在导航到其他页面时崩溃
这是一个数据绑定的windows phone 8.1(通用)应用程序。当我从主页导航到项目的详细视图时,它就像一个符咒。当我使用相同的代码从另一个页面导航到相同的详细页面时,我的应用程序将关闭,我也不会例外。代码与打开新中心项目时中心默认示例中的代码相同。 这是我用来导航到页面的代码C# WP8.1应用程序在导航到其他页面时崩溃,c#,windows-phone-8.1,win-universal-app,C#,Windows Phone 8.1,Win Universal App,这是一个数据绑定的windows phone 8.1(通用)应用程序。当我从主页导航到项目的详细视图时,它就像一个符咒。当我使用相同的代码从另一个页面导航到相同的详细页面时,我的应用程序将关闭,我也不会例外。代码与打开新中心项目时中心默认示例中的代码相同。 这是我用来导航到页面的代码 private void ItemView_ItemClick(object sender, ItemClickEventArgs e) { { // Naviga
private void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
{
// Navigate to the appropriate destination page, configuring the new page
// by passing required information as a navigation parameter
var itemId = ((SampleDataItem)e.ClickedItem).UniqueId;
if (!Frame.Navigate(typeof(Session), itemId))
{
throw new Exception(this.resourceLoader.GetString("NavigationFailedExceptionMessage"));
}
}
}
这是我用来处理加载的代码
private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
// TODO: Create an appropriate data model for your problem domain to replace the sample data
var item = await SampleDataSource.GetItemAsync((string)e.NavigationParameter);
this.DefaultViewModel["Item"] = item;
}
代码在点击最后一个括号后停止,应用程序退出。在此之前,它会正常工作,值是正确的,它会找到特定的项目 找到了解决方案并将我的代码更改为
private async void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
{
var itemId = ((SampleDataItem)e.ClickedItem).UniqueId;
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => Frame.Navigate(typeof(Session), itemId));
}
}
我仍然不理解这个错误,但现在它已经解决了。其他页面是否也传递了itemId?是的,使用相同的代码。它可以正确地获取itemid。这就是为什么我觉得这很难理解。我使用相同的代码,它以相同的方式工作。它只是停止。除了LoadState处理程序之外,链中是否涉及任何异步void方法?这些几乎不可能调试。您也可以尝试这样做:没有发现/捕获未处理的异常。这部分代码中没有其他异步代码。此外,它使用正确的参数和值退出异步。