none
win 8 页面条转问题 RRS feed

  • 问题

  • private void Button_Click_Back(object sender, RoutedEventArgs e) { try { Frame.GoBack(); } catch (Exception ex) { showMessage(ex.Message, "提示"); } }

    当执行Frame.GoBack();后会调到

    #endif
    #if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
                UnhandledException += (sender, e) =>
                {
                    if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
                };
    #endif

    就退出了。截获不了异常信息,不知道是什么情况能引发这个异常。


    • 已编辑 runqian 2013年12月30日 8:20
    2013年12月30日 8:19

答案

  • Hi runqian,

    我能理解成为,当你的MainPage生成的时候,是没有my这个东西存在的,是通过后期初始化才生成的对么?参考下这篇文档: Quickstart: Navigating between pages

    我建议可以把这个 NavigationCacheMode property 设置为Enable, 参考 NavigationCacheMode enumeration, 但是这个办法不是很保险,因为很有可能系统因为节约资源会把当前cache删除。

    或者还有个更加保险的办法,就是使用 Navigate(TypeName, Object) 方法 把my作为参数传入到下一页中。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    • 已标记为答案 runqian 2013年12月31日 8:00
    2013年12月31日 7:53
    版主

全部回复

  • Hi runqian,

    当此异常出现的时候,在VS中查看locals页面,查看里面的e内容是什么。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2013年12月30日 11:39
    版主
  • Thanks James,我找到了那里出错了。我是在MainPage的构造函数中实例化一个我的类Myclass my=new Myclass(),然后执行一个跳转,Frame.Navigate(typeof(BlankPage1));,在BlankPage1中加一个按钮,在按钮的事件中调用Frame.GoBack();。然后我在MainPage的OnNavigatedTo()中用到了my,结果是my=null;所以出错了。但是我需要用到这个my,不知道在跳转回来时怎样使他不为null.
    2013年12月31日 7:08
  • Hi runqian,

    我能理解成为,当你的MainPage生成的时候,是没有my这个东西存在的,是通过后期初始化才生成的对么?参考下这篇文档: Quickstart: Navigating between pages

    我建议可以把这个 NavigationCacheMode property 设置为Enable, 参考 NavigationCacheMode enumeration, 但是这个办法不是很保险,因为很有可能系统因为节约资源会把当前cache删除。

    或者还有个更加保险的办法,就是使用 Navigate(TypeName, Object) 方法 把my作为参数传入到下一页中。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    • 已标记为答案 runqian 2013年12月31日 8:00
    2013年12月31日 7:53
    版主