起動時に複数の HttpRequests を作成しているアプリケーションがあります。より多くの MVVM アプリケーションにしようとして、多くの UI 処理を別のクラスに移動しようとする前は、正常に動作していました。データを含むページを読み込んでいるときに、例外なくアプリケーションがクラッシュ/終了します。
この終了の主な原因 (私は信じています) は、アプリケーションの RootFrame の ViewModel を設定して、xaml バインディングでそのクラスを参照できるようにする場所です。
(App.Current as App).RootFrame.DataContext = (App.Current as App).ViewModel;
これがないとアプリは起動しますが、ページにバインドされたデータはありません。ViewModel を RootFrame のデータ コンテキストとして設定しようとすると同時に、ViewModel を変更する非同期 Http 呼び出しがいくつかあると思います。これがこの種の終了を引き起こすかどうかはわかりませんが、推測に過ぎません。
この部分がエラーの原因であると確信しています。アプリがシャットダウンした後、出力が次のようになるためです。
'UI Task' (Managed): Loaded 'mscorlib.dll'
'UI Task' (Managed): Loaded 'System.Windows.RuntimeHost.dll'
'UI Task' (Managed): Loaded 'System.dll'
'UI Task' (Managed): Loaded 'System.Windows.dll'
'UI Task' (Managed): Loaded 'System.Net.dll'
'UI Task' (Managed): Loaded 'System.Core.dll'
'UI Task' (Managed): Loaded 'System.Xml.dll'
'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\ParkQuest.dll', Symbols loaded.
'UI Task' (Managed): Loaded 'Microsoft.Phone.dll'
'UI Task' (Managed): Loaded 'Microsoft.Phone.Interop.dll'
'UI Task' (Managed): Loaded 'Microsoft.Xna.Framework.dll'
'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\Facebook.dll'
'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\System.Windows.Interactivity.dll'
'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\Microsoft.Expression.Interactions.dll'
'UI Task' (Managed): Loaded 'System.Runtime.Serialization.dll'
'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\Microsoft.Phone.Controls.Toolkit.dll'
The thread '<No Name>' (0x1af811be) has exited with code 0 (0x0).
The thread '<No Name>' (0x1ada0ebe) has exited with code 0 (0x0).
The thread '<No Name>' (0x1a9c105a) has exited with code 0 (0x0).
The program '[457643138] UI Task: Managed' has exited with code 0 (0x0).
参考までに、私のスタートアップ オブジェクトは問題ではありません。
有益な提案をお寄せいただきありがとうございます。データバインディングを実装するより良い方法があると思われる場合は、お知らせください。
また、このお問い合わせへの回答に役立つその他の情報が必要な場合は、お気軽にお問い合わせください。