如何使用MVVM处理打开和关闭新Windows?

时间:2009-09-23 09:37:16

标签: wpf mvvm dialog window

使用MVVM和WPF处理打开和关闭新窗口和对话框的好方法/直接方法是什么?打开和关闭应该由ViewModel驱动吗?但ViewModel不应该知道视图......

1 个答案:

答案 0 :(得分:6)

我通常使用接口。 例如,如果我想在单独的窗口中编辑记录,我有一个接口IEditingProvider< TViewModel>,我可以在其他地方实现,然后将接口引用传递给我的ViewModel的构造函数。 EditingProvider可能会做这样的事情:

class MyRecordEditingProvider: IEditingProvider<MyRecordViewModel>
{
    // Implementation of generic interface method
    public void Edit(MyRecordViewModel model) {
        EditWindow edit = new EditWindow(); 
        edit.DataContext = model;
        edit.ShowDialog();
    }
}