何时以winform MVP模式显示视图

时间:2010-03-29 12:13:03

标签: .net winforms mvp

我想知道在MVP模式中调用ShowDialog()的位置,Presenter通常定义为:

public Presenter(IView view, IModel model)
{
    this.View = view;
    this.View.Presenter = this;
    this.Model = model;
}

我想通过调用ShowDialog()来显示View Modelly,那么我应该在哪里调用ShowDialog()?

public void Foo()
{
var view = New View();
view.ShowDialog();
var presenter = new Presenter(view, model);
}

但是如果我在创建演示者之前调用ShowDialog(),则.ShowDialog()将不会在视图关闭之前返回, 然后我必须在Presenter中调用它,但我觉得在演示者中调用ShowDialog()是反模式的,

那么,什么是更好的解决方案,还是可以在演示者中调用ShowDialog()?

1 个答案:

答案 0 :(得分:2)

为什么不

var presenter = new Presenter(view, model);
view.ShowDialog();

不,我不认为在Presenter中调用ShowDialog是一种反模式