2012-10-31 52 views
2

我正在嘗試爲用戶創建一個首選項窗口,以供用戶操作(更改首選項)。 我想以適當的方式實現它,所以你有什麼好的代碼架構建議?順便說一句,我使用WPF的C#MVVM模式。如何使用MVVM爲用戶首選項創建程序體系結構

喜歡,使用偏好類,其中所有的設置將被保存...或類似的東西。

謝謝

回答

1

我鼓勵你使用某種MVVM框架。

下面我將介紹MVVM Light-free MVVM框架的解決方案。

  1. 創建例如選擇新窗口選項窗口(的.xaml &的.cs)
  2. 例如用於OptionsWindowViewModel新窗口中創建視圖模型
  3. 在你的主窗口創建按鈕:命令= {結合CreateOptionsWindowCommand}在您的MainViewModel:

public RelayCommand CreateOptionsWindowCommand { get; private set; }

在構造函數

CreateOptionsWindowCommand = new RelayCommand(CreateOptionsWindowCommandExecute) 

和功能:

private void CreateOptionsWindowCommandExecute() 
{ 
    OptionsWindow newOptionsWindow = new OptionsWindow(); 
    OptionsWindowViewModel vm = new OptionsWindowViewModel(); 
    newOptionsWindow.DataContext = vm; 
    newOptionsWindow.ShowDialog(); 
} 

在新窗口中選擇所有綁定現在結合OptionsViewModel。

要檢索您在OptionsWindow中保存到您的MainViewModel的選項和數據,您可以使用在MVVM Light中實現的Messanging。 Messanging用於在課程之間進行交流。

+0

是的,謝謝我忘了說我正在使用這個框架,我會試試這個報告。 – Georges

+0

所以我綁定,可以說OptionsViewModel上的偏好項目,並通過'Messenger'發送給我的mainViewModel ...是否有可能使pereference對象(其中保存所有設置)某種全局?以更簡單的方式訪問它... – Georges

+0

以及你可以考慮創建OptionsViewModel而不是作爲函數中的局部變量。它可能是您的MainViewModel中的屬性。您還可以在關於設計模式的書中找到很多這類問題的解決方案。 (C#設計模式 - O'Reilly非常好)。 – fex