All of the WinForms wizards I've written in the past have a high degree of coupling between the UI and the model. That is: the individual pages know about enabling/disabling the Next/Previous buttons, how to react to the Next button being pressed, etc. It makes it all hard to test, because to test any of the logic, you've got to put a lot of scaffolding together first.
I've been using MVC (in the form of ASP.MVC) recently, and I'm finding that easy to test. I've also had a play with WPF, and I think I'm getting my head around M-V-VM.
I'm struggling with the M-V-P pattern in WinForms (i.e. no WPF-style databinding). In particular, I need to implement a wizard.
Would I have a controller per page? A view model that governs the whole wizard? Something else?
This is in WinForms (not WPF), in C#. .Net 2.0 preferred.