2012-08-04 57 views
2

的使用mvvmlight Windows 8的狀態處理實現在Windows 8的處理有沒有什麼方法所能得到的利勃海爾在mvvmligt在WinRT的管理狀態?如何通過使用WinRT來複制默認SuspensionManager的功能?第二個是關於管理導航週期,即如果我從頁面A - > B導航,並進入暫停和關閉狀態。當我重新啓動需要打開頁面B的應用程序,並且按下後退鍵時,我需要加載A.如何在WinRT應用程序中使用MVVM light有效實現此功能?狀態使用mvvmlight

+0

[實施國家使用MVVM光處理在窗口8]的可能重複(http://stackoverflow.com/questions/11710859 /實施狀態裝卸式窗口-8-使用-MVVM光) – 2012-08-05 20:37:34

回答

-1

我寫了這個原本爲WP7,並已更新適用於Win8 RT。它允許您將屬性附加到您希望保留在視圖模型中的屬性中,然後PersistenceManager在應用程序暫停時對其進行脫水(序列化爲文件),並在恢復時進行再水化。

存在用於WP7和Win8的,基本MVVM模式和MVVM光實例

Obelisk

0

這些不是真正的MVVM Light功能。你需要自己做這些。

一種選擇是創建自己的導航服務(見例如here)。導航服務可以使用暫停管理器爲應用程序構建/管理麪包屑路徑。如果添加一個額外的方法:

public void GoToMostRecentPage() 
{//blah} 

你最好能夠調用的應用程序啓動這個方法,並採取用戶到相應的頁面。

我會堅持使用SuspensionManager。如果你想讓MVVM更友好,你可以將它包裝在一個服務中,根據需要將它注入到視圖模型中。

0

你可能會感興趣的開源Okra App Framework,您可以從的NuGet或CodePlex上網站,我掛上面得到。它從頭開始設計,可以很好地與Windows 8和MVVM模式一起工作(並且您仍然可以使用您的MVVM Light基類)。

它有一個導航管理器,可以自動處理上面提到的所有事情 - 管理應用程序的導航堆棧,在應用程序掛起/終止時持久化堆棧,甚至允許視圖模型通過簡單的界面持久化自己的狀態SuspensionManager適用於頁面)。

(免責聲明:我對這個項目的主要開發人員)