8

メトロ アプリのデバッグ/実行中に奇妙な動作が発生しました。ドラッグ アンド ドロップ中に画面が更新されます。ドラッグアンドドロップの進行中にバインドされたプロパティが更新されないようにする機能を追加しました。

ただし、アプリがクラッシュすることもありますが、デバッグできる例外をスローする代わりに、外部のジャストインタイムデバッガーを開くように指示するウィンドウしか表示されません。

SOME_APP.exe で未処理の win32 例外が発生しました [7785]。

(外部デバッガーはそれ以上の情報を提供しません)

出力には次のように表示されます。

SOME_APP.exe の 0x05017145 (Windows.UI.Xaml.dll) で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0x00000088。

x64 デバイスで作業しています。誰かがそのような問題について聞いたことがありますか?

4

1 に答える 1

11

実装された INotifyPropertyChanged、継承された BindableBase または DependencyObject などのオブジェクトを NavigationParameter を介して渡す場合。NavigatedPage にバインドする (またはナビゲート ページにバインドする) と、このエラーが発生する可能性が高くなります。ナビゲートするときに、NavigationParameter を介してプリミティブ型以外のオブジェクトを渡さないでください。

参照されているメソッドが存在しないため、この例外が発生しています。例えば。

  1. BindableBase を継承する Categories という名前のオブジェクトがあります。
  2. これを Home.xaml にバインドしました。
  3. Home.xaml のバインド メカニズムは、Categories オブジェクトの PropertyChanged イベントをサブスクライブしました。
  4. NavigationParameter として Categories オブジェクトを渡して Article.xaml をナビゲートしました。
  5. Categories オブジェクトを Article.xaml にバインドしました。
  6. Categories オブジェクトでプロパティが変更されたとき。そのプロパティは PropertyChanged イベントを発生させます。
  7. そのイベントには 2 人のサブスクライバーがいます。Home.xaml と Article.xaml ですが、Home.xaml から移動したため、Home.xaml は存在しません。しかし、デリゲートはそのアドレスを保持しています。そのため、実行を試みます。アクセス違反エラーで失敗します。
于 2012-09-28T08:42:32.337 に答える