如何使用MVVM为用户首选项创建程序体系结构

时间:2012-10-31 13:47:01

标签: c# wpf mvvm architecture preferences

我正在尝试为用户创建一个偏好窗口,他们可以操作(更改首选项)。 我想以适当的方式实现它,所以你对一个好的代码架构有什么建议吗?顺便说一下,我正在使用带有WPF的C#的MVVM模式。

比如,使用一个首选项类,其中将保存所有设置......或类似的东西。

谢谢

1 个答案:

答案 0 :(得分:1)

我鼓励您使用某种MVVM框架。

下面我将介绍使用MVVM Light-free MVVM框架的解决方案。

  1. 为选项创建新窗口,例如OptionsWindow(.xaml& .cs)
  2. 为新窗口创建ViewModel,例如OptionsWindowViewModel
  3. 在主窗口中创建按钮:Command = {Binding CreateOptionsWindowCommand},在MainViewModel中:
  4. public RelayCommand CreateOptionsWindowCommand { get; private set; }

    在你的ctor中

    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用于在类之间进行通信。