Win8 - Windows.UI.Xaml.dll中的未处理异常

sal*_*and 8 winapi xaml unhandled-exception windows-8

在调试/运行我的metro应用程序时,我有一些奇怪的行为.在拖拽期间,屏幕将被刷新.我已经添加了一些功能来阻止绑定属性从刷新时拖拽正在进行中.

但有时应用程序崩溃了,但是我没有抛出一些我可以调试的异常,而是我得到的一个窗口就是打开一个外部即时调试器

SOME_APP.exe [7785]中发生了未处理的win32异常.

(外部调试器不会带来更多信息)

输出说:

SOME_APP.exe中0x05017145(Windows.UI.Xaml.dll)的未处理异常:0xC0000005:访问冲突读取位置0x00000088.

我正在使用x64设备.有人听说过这样的问题吗?

Med*_*kal 11

如果您通过NavigationParameter传递实现INotifyPropertyChanged的对象,继承BindableBase或DependencyObject等; 然后在NavigatedPage中绑定(或在导航页面中绑定它们),您很可能会收到此错误.导航时,不要通过NavigationParameter传递除原始类型之外的任何对象.

您将获得此异常,因为不存在引用的方法.例如.

  1. 你有一个名为Categories的对象,它继承了BindableBase.
  2. 你把它绑定到Home.xaml.
  3. Home.xaml的绑定机制订阅了Categories对象的PropertyChanged事件.
  4. 您导航Article.xaml传递Categories对象作为NavigationParameter.
  5. 您将Categories对象绑定到Article.xaml.
  6. 当属性在Categories对象中更改时; 该属性将触发PropertyChanged事件.
  7. 该活动有两个订阅者.Home.xaml和Article.xaml,但Home.xaml已不再存在,因为您已离开它.但是你的代表持有它的地址; 所以它试图执行; 和Access违规错误失败.