Win8 - Unbehandelte Ausnahme in Windows.UI.Xaml.dll

8

Beim Debuggen / Ausführen meiner Metro-App habe ich seltsames Verhalten. Während Drag'n'Drop wird der Bildschirm aktualisiert. Ich hatte einige Funktionen hinzugefügt, um verbindliche Eigenschaften vor der Aktualisierung zu schützen, während Drag'n'Drop in Bearbeitung ist.

Aber manchmal stürzt die App ab, aber anstatt eine Ausnahme auszulösen, die ich debuggen kann, habe ich nur ein Fenster, das sagt, dass ich einen externen Just-in-Time-Debugger öffnen soll

  

Eine nicht behandelte win32-Ausnahme ist in SOME_APP.exe [7785] aufgetreten.

(Der externe Debugger bringt keine weiteren Informationen)

Und die Ausgabe sagt:

  

Nicht behandelte Ausnahme bei 0x05017145 (Windows.UI.Xaml.dll) in SOME_APP.exe: 0xC0000005: Zugriff auf Leseadresse 0x00000088 der Zugriffsverletzung.

Ich arbeite an einem x64-Gerät. Hat jemand jemals von einem solchen Problem gehört?

    
salcosand 09.08.2012, 09:43
quelle

1 Antwort

11

Wenn Sie Objekte übergeben INotifyPropertyChanged, geerbte BindableBase oder DependencyObject etc. durch NavigationParameter übergeben; und bind dann in der NavigatedPage (oder verband sie in der navigierenden Seite) Sie werden höchstwahrscheinlich diesen Fehler erhalten. Übergeben Sie bei der Navigation keine Objekte außer dem primitiven Typ durch NavigationParameter.

Sie erhalten diese Ausnahme wegen nicht vorhandener referenzierter Methoden. Zum Beispiel.

  1. Sie haben ein Objekt namens Categories, das BindableBase erbt.
  2. Sie haben das an Home.xaml gebunden.
  3. Der Bindungsmechanismus von Home.xaml hat das PropertyChanged-Ereignis des Categories-Objekts abonniert.
  4. Sie haben das Article.xaml, das das Categories-Objekt als NavigationParameter übergeben hat,
  5. navigiert
  6. Sie haben das Categories-Objekt an Article.xaml gebunden.
  7. Wenn sich eine Eigenschaft im Categories-Objekt ändert; Diese Eigenschaft löst das PropertyChanged-Ereignis aus.
  8. Es gibt zwei Abonnenten für diese Veranstaltung. Home.xaml und Article.xaml, aber Home.xaml ist nicht mehr vorhanden, da Sie davon weg navigiert sind. Aber Ihr Delegierter hält die Adresse davon; So versucht es Execute; und mit Zugriffsverletzung Fehler.
Medeni Baykal 28.09.2012 08:42
quelle