2014-03-13 30 views
1

我有一個使用MVVM模式的WPF查詢。第一個面板是導航區域,第二個面板是選項卡區域。兩者之間是導航按鈕。如果我點擊導航按鈕,那麼它會摺疊導航區域。如果我再次單擊此按鈕,則兩個面板都可見。記住可擴展/可摺疊導航區域的最後設置

所以我想要做的就是讓他們的最終狀態通過應用程序關閉持續存在。如果用戶摺疊導航區域並關閉應用程序,則下次打開應用程序時,導航區域仍應關閉。我不想將這些信息存儲在數據庫中。

我該如何做到這一點?

樣品外觀形象: enter image description here

回答

1

如果您使用的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); 
0

我找到了一個實現它的簡單方法。 我所做的是創建一個XML文件(顯然在Bin文件夾外面) 將網格寬度的默認值傳遞給XML文件。

在應用程序啓動時調用的函數在Linq To XML的幫助下,我檢索了我在XML文件中默認設置的網格寬度的值(第一次傳入默認值)並存儲了此條目變成一個變量。

現在,我通過這個變量的網格長度。 現在,如果用戶摺疊/展開面板並關閉應用程序,那麼只需在Close函數中更新XML的值。