我有一個使用MVVM模式的WPF查詢。第一個面板是導航區域,第二個面板是選項卡區域。兩者之間是導航按鈕。如果我點擊導航按鈕,那麼它會摺疊導航區域。如果我再次單擊此按鈕,則兩個面板都可見。記住可擴展/可摺疊導航區域的最後設置
所以我想要做的就是讓他們的最終狀態通過應用程序關閉持續存在。如果用戶摺疊導航區域並關閉應用程序,則下次打開應用程序時,導航區域仍應關閉。我不想將這些信息存儲在數據庫中。
我該如何做到這一點?
樣品外觀形象:
我有一個使用MVVM模式的WPF查詢。第一個面板是導航區域,第二個面板是選項卡區域。兩者之間是導航按鈕。如果我點擊導航按鈕,那麼它會摺疊導航區域。如果我再次單擊此按鈕,則兩個面板都可見。記住可擴展/可摺疊導航區域的最後設置
所以我想要做的就是讓他們的最終狀態通過應用程序關閉持續存在。如果用戶摺疊導航區域並關閉應用程序,則下次打開應用程序時,導航區域仍應關閉。我不想將這些信息存儲在數據庫中。
我該如何做到這一點?
樣品外觀形象:
如果您使用的MVVM比你有一個視圖模型的這一觀點。
在該視圖模型,你應該有當用戶點擊導航按鈕將要執行的命令,這樣就可以決定如何處理導航區做
所以基本上你可以存儲信息(是導航倒塌或不)在Application.Properties.Settings中,請參閱http://msdn.microsoft.com/en-us/library/aa730869%28v=vs.80%29.aspx
您在那裏創建屬性,例如IsNavigationAreaCollapsed類型爲布爾值。
當命令代碼執行此操作:
private void OnNavigationButtonExecution()
{
Properties.Settings.Default.IsNavigationAreaCollapsed = !Properties.Settings.Default.IsNavigationAreaCollapsed
CollapseNavigationArea(Properties.Settings.Default.IsNavigationAreaCollapsed); // this will collapse or not the navoigation area
Properties.Settings.Default.Save(); //save settings, so that it will be stored when app shutsdown
}
和視圖模型構造函數中添加代碼,將讀取設置(Properties.Settings.Default.IsNavigationAreaCollapsed)的值,這樣做
CollapseNavigationArea(Properties.Settings.Default.IsNavigationAreaCollapsed);
我找到了一個實現它的簡單方法。 我所做的是創建一個XML文件(顯然在Bin文件夾外面) 將網格寬度的默認值傳遞給XML文件。
在應用程序啓動時調用的函數在Linq To XML的幫助下,我檢索了我在XML文件中默認設置的網格寬度的值(第一次傳入默認值)並存儲了此條目變成一個變量。
現在,我通過這個變量的網格長度。 現在,如果用戶摺疊/展開面板並關閉應用程序,那麼只需在Close函數中更新XML的值。