使用MVVM和WPF处理打开和关闭新窗口和对话框的好方法/直接方法是什么?打开和关闭应该由ViewModel驱动吗?但ViewModel不应该知道视图......
答案 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();
}
}