A very stubborn answer ahead:
I tried several different binding approaches in WinForms (over the years), and it is actually very easy to get 80% of what you want, and it requires a significant hack for the other 20% to work. In addition, usually third-party controls have their own quirks.
Your list there illustrates well the pitfalls. Unfortunately, WinForms simply does not have the ability to bind, say, WPF.
My current approach to data binding is to not use any binding objects and do everything manually. The approach that I usually do is simply make the form a passive view and pass the ViewModel form object, encapsulating all the data that should be displayed on the form and setting all the properties on the form from this object. This means that you lose all the βmagicβ of the binding, but it is not a black box and it is easier to debug.
Good question, I look forward to other answers and it turned out to be wrong.
source share