2011-07-26 7 views
1
私はWindowsの携帯電話7(WP7)アプリの状態を保存するためのあなたの戦略が何であるかを知りたい

の状態を保存します。私が状態を言うとき、私はスタックの各ページのモデルビュー状態を意味します。ツームストーン戦略は、どのように複数のページ

最近、私はproblems with tombstoning in WP7, cannot tell if i need to restore or instantiate/query new data、で質問をし、その溶液は動作します。しかし、このアプローチは、アドホックかつ/またはページ固有であるように見える。コードはそれに先行するページの状態を保存しません。

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

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

どのように我々は廃棄されたときにアプリケーションの完全な状態を保存するために、これらのメソッドを利用することがありますか?私はまだ良いチュートリアルをオンラインで見つけられませんでした。

ご了承ください。

答えて

0

実際には、それらの方法も忘れてしまうかもしれません。トゥームストーンを持続的な状態、より永続的なデータとして考えるべきではありません。

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

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

ViewModelsの場合、それらを削除するのはかなり簡単です。 tombstonedインスタンスが存在するかどうかを確認するコードを追加し、作成時にviewmodelのデータを読み込みます。また、すべてのUI設定をビューモデルにバインドすると、かなり金色になります。

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

関連する問題