午前2時に私の脳が見えないという明らかな答えがあることを願っています(私は、同じ問題を抱えている誰も見つけられないという事実に基づいています)。WP7 - ウィンドウの戻るボタンを押したときにバインディングが実行されないのはなぜですか?
私のWindows phone 7の "ハードウェア/内蔵"戻るボタンを押すと、私のバインディングのどれも再評価されません。例えば、私のMainPageでは、値が独立したストレージにあるかどうかをチェックする、ViewModelのboolプロパティにボタンの "IsEnabled"がバインドされています。エミュレータでは、ディスエーブルされます(明らかに)。次に、別のページに移動し、必要な値を独立したストレージに追加します。ハードウェアの戻るボタンを押して元のページに戻ると、バインディングは再評価されず、私のボタンは無効のままです。
navigateメソッドを使用してコード経由でMainPageに戻った場合、バインディングは再評価され、すべてが良好です。
理由は何ですか?
基本的に私はRaisePropertyChangedを別のViewModelから必要なものに移動するため、試行していた最初のものでした。私はナビゲーションボタンが機能していたので、戻りませんでしたが、標準のMVVMライト実装のようにViewModelsを保持しないので、メッセージを受け取ることができないと想定しました。私はそれを試してみようとあなたに知らせる – Nogusta
それは働いたが、それは私に多くの質問を残す。コードを介してビューにナビゲートすると、ViewModelのコンストラクタが呼び出されますが、戻るボタンを経由すると、ViewModelのコンストラクタが呼び出されません。どうしてこれなの? WP7は私のビューとViewModelへの参照をどうにかしていますか?もしそうならば、ビューが離れて移動するときにViewModelを処理するにはどうすれば大きなコレクションをメモリに保持していないのでしょうか? – Nogusta
戻るボタンを押すだけで元のビューがそのままポップアップするようです。戻るボタンを押すと、ViewModelを公開する私のViewModelLocatorプロパティはヒットしません。 – Nogusta