私は WP 8.1 アプリを UWP に変換しています。プリズムの使用に興味があったので、アプリをゼロから構築しようと考えました。別のページに移動するボタンを含むページを作成し、アプリを展開して試してみました。ボタンをクリックしてナビゲートすると、次のコードが実行されます
private void Button1_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(TestPage));
}
その後、アプリがクラッシュします。VS2015 の出力ウィンドウを見ると、下部に次のように表示されます。
The program '[4760] MyApp.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.
どちらのページにも ViewModels があり、 Prisms を使用して設定されていViewModelLocator.AutoWireViewModel
ます。ViewModels のすべてのプロパティをクリアして、コードなしで空にしようとしましたが、何もしませんでした。ビュー モデル コンストラクターにブレークポイントを配置すると、デバッグ時にこのポイントに到達します。
これが何を意味するのか、または他にどこを見るべきか考えていますか?
更新:問題は、コントロール テンプレートが原因のようです。すべての XAML をコメントアウトしてから、1 つずつ追加し直すことで、問題をボタン コントロールに絞り込みました。次に、問題の原因となっているコントロールを見つけたので、バインディングとスタイル テンプレートを削除しました。バインディングを元に戻すとすべて問題なく、テンプレートを元に戻すと問題が発生しました。