已经学习了MVP并尝试在WinForms中使用它来编写测试应用程序。我正在努力寻找一个关于如何在我的表单/视图之间导航的很好解释的示例。作为一个例子,程序启动,我想显示一个登录对话框,然后进入我的主视图,如果登录成功。目前,我的Main方法看起来像这样:WinForms中的MVP导航
static void Main()
{
var loginView = Injector.Resolve<ILoginView>();
if (loginView.DoLogin() != LoginResult.OK) return;
var mainView = Injector.Resolve<IMainView>();
Application.Run(mainView); // won't work as mainView isn't a form
}
Injector对象只是IoC工具(当前是StructureMap)的包装。事情是,我读过我不应该通过注入器手动创建实例,因为它们应该通过构造器注入完成。
我已经设法做到了这一点,但没有涉及到导航。我想不出一种优雅的方式来解读我的观点,并想知道这里有没有人可以对此有所了解?我在应用程序控制器上阅读了一些内容,但没有找到清楚显示它的示例。
'mainView'可能有一些方法来显示视图.. – dotNETbeginner
您可以在mainView中插入一个方法,该方法返回实际的窗体。 – Rockstart
这对我来说看起来不像MVP,你应该在Presenter中放置逻辑。 –