1

Windows Phone 7 (wp7) アプリで状態を保存するための戦略を知りたいです。状態とは、スタック内の各ページのモデル ビューの状態を意味します。

最近、 WP7 での廃棄に関する問題で、新しいデータを復元またはインスタンス化/クエリする必要があるかどうかがわからないという質問をしましたが、解決策は機能します。ただし、このアプローチはアドホックおよび/またはページ固有のみのようです。コードはその前のページの状態を保存しません。

アプリがアクティブ化または非アクティブ化されたときに、アプリの状態の復元またはバックアップをそれぞれ処理することになっていることを理解しています。App.xaml.cs に対して生成されたコード ビハインドは、メソッドを生成します。

private void Application_Activated(object sender, ActivatedEventArgs e)
private void Application_Deactivated(object sender, DeactivatedEventArgs e)

これらの方法を利用して、廃棄されたときにアプリケーションを完全な状態に保存するにはどうすればよいでしょうか? 私はまだ良いチュートリアルをオンラインで見つけていません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

実際には、これらのメソッドを忘れる可能性があります。廃棄を永続的な状態と考えるべきではなく、データの永続化と考えるべきです。

明らかに、アプリケーション全体の状態を魔法のように廃棄することはできません。また、一般的に言えば、ページの UI 状態は、個々のページについてのみ認識されます。

あなたがする必要があるのは、保持したい UI 状態がある場合はそれを把握し、それらをデータと共に (明らかに) PhoneApplicationService.State または IsolatedStorage.ApplicationSettings (データのサイズに応じて) に保持することです。

ViewModel の場合、廃棄するのはかなり簡単です。廃棄されたインスタンスが存在するかどうかを確認するコードを追加し、作成時にビューモデルのデータをロードするだけです。すべての UI 設定をビューモデルにバインドすれば、ほぼ完璧です。

前の質問のコードを ViewModels コンストラクターで使用すると、ほとんど同じ結果が得られます。ViewModel を常に永続化するには、PropertyChanged のローカル ハンドラーをアタッチし、それが呼び出されるたびに ViewModel の状態を保存します。

于 2011-07-26T13:48:21.280 に答える