This is a long standing issue that exists since .NET 2.0 was released. Microsoft didn’t want to solve the issue. You can read a full discussion on the links below.
In a nutshell, suppose I’m using DataBinding and my business layer decides a given string must be uppercased, say because it’s a family name and in some countries, the family name is uppercased. When I enter the family name in the text box, DataBinding passes the string to the business layer. The business layer changes it to uppercase and notifies the UI layer that there was a change. Every other control can receive the notification but the text box where the name was entered doesn’t receive the notification. Don’t ask why, ask how to solve this awkward behavior.
I attach a triple sample showing this issue in Windows Forms, WebGUI and Wisej. Each sample has two forms, one showing the “normal” behaviour you get from the raw Windows Forms library and another where this issue is fixed. The only difference between the forms is the presence of the BindingSourceRefresh control, the one that fixes DataBinding.
Besides the DataBinding issue, I noticed two other problems:
To keep you updated.
With the latest fixes (not deployed yet) I could take the sample you attached here, remove all the aliases and run it without changes.
for your convenience I have attached your latest sample with the namespace changes.
For components you can use either System.ComponentModel.Component or Wisej.Web.Component.
In your case it’s better to use System.ComponentModel.Component since it only lives on the server side.
Wisej.Web.Component works the same but are also registered with the ComponentManager which manages the server/client components.
Hope that helps.