First i'm not mad, because i use MVVM in WinForms-) I know about MVP (Model View Presenter) pattern and it's variants. But when i started this project i was going to learn WPF and use it, but i'm forced to rush program development, and have no time to learn WPF, so i have to write it in WinForms which i know well.
So in short i have a large data oriented smart client application, which is close to finish, i have all Models and ViewModels done (Infrastructure, Domain, Presentation done) UI is done too, now i only need to wire UI to ViewModels. First i started wiring it using standard winforms way (BindingSources, and simple databinding) but when i did 30-50% of binding i found out that my program works very slow, i have like 100-150 bound properties total so far, 30 of them are domain root entity (aggregate root) bindings to it's EditForm. So databinding doesn't work well in this situation, lots of unnecessary updates, cascade updates of entire view when something small changes, unclear behavior, and other ugly stuff. It smells like very unreliable code, on which i have little control. So i began to rewrite wiring as pure clean WinForms code (subscribing to PropertyChange and ListChanged events, and setting ViewModels property on my own from UI). Lot's of code to write but it works much faster, i have full control on this, and it feels much more reliable. So what's your thoughts on this guys? Anyone had such experience? What's your verdict on "To DataBind or Not"?