Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WP8.1应用程序在导航到其他页面时崩溃_C#_Windows Phone 8.1_Win Universal App - Fatal编程技术网

C# WP8.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

这是一个数据绑定的windows phone 8.1(通用)应用程序。当我从主页导航到项目的详细视图时,它就像一个符咒。当我使用相同的代码从另一个页面导航到相同的详细页面时,我的应用程序将关闭,我也不会例外。代码与打开新中心项目时中心默认示例中的代码相同。 这是我用来导航到页面的代码

 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方法?这些几乎不可能调试。您也可以尝试这样做:没有发现/捕获未处理的异常。这部分代码中没有其他异步代码。此外,它使用正确的参数和值退出异步。