title: C# Winforms Custom control, binding on propertychange is not working and causing tabbing issues
body: <p>I've just upgraded an old .NET 1.1 Winforms app that uses CSLA to .NET 4.0 and a later version of CSLA which supports the use of the INotifyPropertyChanged interface.</p>
  
  <p>A large part of the reason for doing this is the databinding improves - e.g. being able to update on change when binding instead of when validating (tabbing off).</p>
  
  <p>I have custom user control, NumberBox. Essentially it's just a textbox with a few properties such number type, decimal places etc.. I have exposed a public property of type <strong>object</strong> called BindableValue. It was this property that I was binding my CSLA classes (standard .NET classes inheriting validation rules, property changed and various stuff) <strong>integer</strong> property to, in this particular case it the class property is integer.</p>
  
  <p>My problem having upgraded are the following:</p>
  
  <ol>
  <li>If I enter a value, e.g. 1234, into my number box control it doesn't push the value back into the class' property it is bound to until I tab off, even though I have configured an object binding source to the custom BindableValue property with the update mode set to Property change.</li>
  <li>Having entered value as in (1) if I go back and delete the value I am then prevented from tabbing off or clicking off the number box. I have set VS2010 to throw when .NET exception is thrown but it's not breaking.</li>
  </ol>
  
  <p>It's been a while since I did WinForms stuff so I'm at a bit of a loss where to start. Any tips as well as a solution would be much appreciated.</p>
  
  <p><strong>EDIT:</strong>
  I've tried a number of different things and am getting nowhere fast, it's getting really frustrating now:</p>
  
  <ol>
  <li>I followed the info on <a href="http://msdn.microsoft.com/en-us/library/ms229615%28v=vs.100%29.aspx" rel="nofollow">MSDN</a>, i.e. I added a ComplexBindingProperties attrib, slightly different in the textbox's private keyUp event handler I raise the event as indicated by the linked article OnBindableValueChanged(). However in all cases my event BindableValueChanged is always null.</li>
  <li>I read similar articles to (1) but instead of declaring the event using EventHandler they used PropertyChangedEventHandler, tried this same result.</li>
  <li>I added the DefaultBindingProperty attrib.</li>
  </ol>