2013-04-15 34 views
2

我正在通過一個基本的MvvmCross(v3.0.3)示例工作,並且我有點卡住瞭解如何在應用程序被邏輯刪除時重新裝入狀態。目前,我有一個可移植類庫,具有單一視圖模型和一個屬性。我也有一個引用此PCL的Windows Phone 8應用程序,綁定到視圖模型,然後將文本塊綁定到屬性。MvvmCross和墓碑

所有效果都很好,因爲該屬性的值顯示在屏幕上。我已將WP8項目設置爲停用時的邏輯刪除,並且當我單擊開始按鈕ViewModel.SaveState方法(沒有打開代碼,因此可能不是正確的名稱)時,我可以填充提供的「包「與財產的價值。

但是,當我通過按「返回」按鈕返回到應用程序時,沒有調用相應的ViewModel.ReloadState方法。我期待着調用這個方法,所以我可以加載在SaveState中指定的數據。

有什麼我失蹤了嗎? MvvmCross是否會導致「關閉停用」選項不會導致這種情況發生?

回答

0

v3中的墓碑代碼是全新的 - 在所有平臺上尚未完全實現 - 儘管我已在WinRT和Android上親自測試過它。

在WindowsPhone的,我也留下了一個開放式的功能 - 主要是因爲我不知道該放什麼在它...

,你需要實現的加載和內部狀態的保存功能,您頁面 - 見MvxPhonePage兩種空的虛方法:https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.WindowsPhone/Views/MvxPhonePage.cs#L54

代碼用於從MvxBundle串行/解串文字/是很容易 - 只需使用IMvxSavedStateConverter - 看到Droid的代碼:https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Views/MvxActivityViewExtensions.cs#L59

可能那是這樣的我常用的代碼,我可以在所有Windows Phone應用程序中使用...

+0

嗨斯圖爾特。我注意到MvxPhonePage上的LoadStateBundle方法不提供從SaveStateBundle訪問相同的IMvxBundle。我是否認爲自己可以管理數據的保存/加載而不依賴於IMvxBundle?此外,計劃在Windows Phone上使用ViewModel.SaveState和ViewModel.ReloadState? – MotoSV

+1

德克薩斯州今天很忙...但基本上需要做邏輯刪除的頁面需要實現LoadStateBundle和SaveStateBundle - 它們需要計算出哪裏(在獨立存儲中?)它們將保存並加載包數據(一個字符串字符串字典)。在實現之後,墓碑*應該*就可以工作。 – Stuart

+0

對不起,昨天沒有回答這個問題 - 只是很忙。如果它不起作用,請告訴我! – Stuart