是否可以使用方法作为事件创建基本视图模型类?

时间:2017-12-18 20:36:55

标签: wpf events mvvm viewmodel

首先,我是WPF和MVVM的初学者,我的小应用程序确实不一定需要所有功能才能工作,但我希望得到一个大应用程序的“想象力”以及它是如何真正的假设要完成。到目前为止,在打开新窗口时,我目前已经创建了一个名为WindowHandler的类,它将viewmodel作为参数并创建一个视图,如下所示:

public MainViewModel()
{
   new WindowHandler(new SettingsViewModel());
}

创建视图:

public WindowHandler(ViewModelBase viewmodel)
{
    _viewModel = viewmodel;
    _view = new Window
    {
        Content = _viewModel
    };
}

然后我可以将类似Show()的方法添加到我的WindowHandler中来打开窗口。

public void Show()
{
    _view.Show();
}

我的所有观点,除了MainWindow,都是用户控件,只是windows的内容。现在我遇到了窗口事件的问题。我可以将每个窗口事件的虚方法添加到ViewModelBase中,并将它们视为通常的视图事件:

public WindowHandler(ViewModelBase viewmodel)
{
    _viewModel = viewmodel;
    _view = new Window
    {
        Content = _viewModel
    };
    _view.Closing += View_Closing;
    _view.Closed += View_Closed;
}

..然后根据需要在viewmodel中覆盖它们。但我开始相信我走错了路。任何人都可以说为什么这是错误的/坏的,我真的需要走哪条路?

0 个答案:

没有答案