2010-11-24 40 views
0

我知道關於墓碑的東西任何如何保存你的應用程序的狀態,但我的問題是關於狀態。Windows Phone 7的國家

比方說,我有一個頁面有5個按鈕。每當我點擊一個按鈕,該按鈕可以是可見的或隱藏的。如何保存當前狀態或頁面的保存狀態?比方說,如果我退出我的應用程序並再次加載5個按鈕,應該隱藏一個按鈕。

我試着在IsolatedStorageFile中保存一個變量狀態值,並在加載頁面的時候檢索它,但我發現處理器爲了保存狀態而做了很多事情太繁瑣。

我想到的另一個解決方案是當Loaded事件被觸發時,我將靜態聲明一個if else語句並手動聲明按鈕的可見性。

有沒有其他辦法?

回答

0

你們是不是要辦時,頁面/應用程序是正常退出同樣的事情,當它的墓碑?默認的預期行爲是,在退出後(通過後退按鈕)啓動應用程序時,應用程序將處於默認狀態。當從墓碑狀態返回時,應用程序應該(儘量合適)以與頁面/應用程序被墓碑化時完全相同的方式顯示給用戶。
當然你可能有不同的需求,但我想強調標準的行爲。

如果要在邏輯刪除時存儲狀態,則約定是使用OnNavigatedFrom和OnNavigatedTo事件將詳細信息存儲在狀態對象中。

有是如何做到這一點的MSDN一個很好的例子:How to: Preserve and Restore Page State for Windows Phone

如果你想在您的應用程序的所有執行保持狀態,那麼你就需要使用IsolatedStorage的細節存儲在持久位置。讀取和寫入數據的時間和地點取決於您需要持續存儲的數據的位置。
如果它處於應用程序級別,則可以使用應用程序級別事件(啓動,激活,關閉&取消激活)。如果在頁面級別有狀態數據,則最好在頁面級別執行它(裝載/卸載或導航從/到適當)。

如果您想要在應用程序的所有執行中存儲狀態,則可能需要查看以上兩個選項。

+0

不是真正退出,但是當用戶離開該頁面並返回時。當然,該頁面的初始值將被加載。如果我使用MSDN的文檔,我相信它只會在應用程序運行時存儲頁面的狀態,但如果它退出,它會返回到初始值,我說得對嗎? – 2010-11-24 14:10:01

0

System.IO.IsolatedStorage命名空間很適合這種行爲,請檢查出here 另請參閱此文章,瞭解如何執行您所要求的操作。

Saving Applications States

+0

嗨,感謝您的回覆。如果我使用IsolatedStorage.ApplicationSetting,它會保存我的控件的當前值嗎?如可見性 – 2010-11-24 14:13:44