如何处理使用MVVM打开和关闭新的Windows? [英] How do I handle opening and closing new Windows with MVVM?
问题描述
我通常使用接口。
例如,如果我想在单独的窗口中编辑记录,我有一个接口IEditingProvider< TViewModel>,我可以实现其他地方,然后传递一个接口引用到我的ViewModel的构造函数。 EditingProvider可能只是这样做:
class MyRecordEditingProvider:IEditingProvider< MyRecordViewModel>
{
//实现通用接口方法
public void Edit(MyRecordViewModel model){
EditWindow edit = new EditWindow();
edit.DataContext = model;
edit.ShowDialog();
}
}
With MVVM and WPF what would be a good/straightforward way to handle opening and closing new windows and dialogs? Opening and closing should be driven by the ViewModel right? But the ViewModel should not know about the view ...
I usually use interfaces for this. For example, if i want to edit a record in a separate window, i have an interface IEditingProvider<TViewModel>, which i can implement somewhere else and then pass an interface reference to the constructor of my ViewModel. The EditingProvider might just do something like this:
class MyRecordEditingProvider: IEditingProvider<MyRecordViewModel>
{
// Implementation of generic interface method
public void Edit(MyRecordViewModel model) {
EditWindow edit = new EditWindow();
edit.DataContext = model;
edit.ShowDialog();
}
}
这篇关于如何处理使用MVVM打开和关闭新的Windows?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!