title: WinForms radiobutton binding not setting property before losing focus
body: <p>I'm trying to make a simple data binding between radio buttons and corresponding bool properties. The setters of the properties don't get called until the radiobuttons actually lose focus on the view. Please disregard the fact that I'm showing message boxes from the presenter. It's just so that I can verify when the setters are actually called. Is there any way to fix this binding such that I get the correct bool values in the properties as soon as i change the check? </p>
  
  <p>Although I would have expected this to work out of the box, i also tried calling the WriteValue() on the binding in the CheckChanged event. it didn't work.</p>
  
  <p>There's also <a href="http://www.turbulentintellect.com/2008/07/surviving-winforms-databinding.html" rel="nofollow">this article</a> that describes the problem in point 5 but doesn't provide a solution.</p>
  
  <pre><code> public class Presenter : INotifyPropertyChanged
  {
      private bool radio1Checked;
      private bool radio2Checked;
  
      public bool Radio1Checked
      {
          get { return radio1Checked; }
          set
          {
              radio1Checked = value;
              MessageBox.Show("Radio 1 Checked is now " + value);
              NotifyPropertyChanged("Radio1Checked");
          }
      }
  
      public bool Radio2Checked
      {
          get { return radio2Checked; }
          set
          {
              radio2Checked = value;
              MessageBox.Show("Radio 2 Checked is now " + value);
              NotifyPropertyChanged("Radio2Checked");
          }
      }
  
      //removed INotifyPropertyChanged implementation for brevity
  }
  </code></pre>
  
  <p>and View:</p>
  
  <pre><code>public Form1()
      {
          InitializeComponent();
          var presenter = new Presenter();
          radioButton1.DataBindings.Add("Checked", presenter, "Radio1Checked");
          radioButton2.DataBindings.Add("Checked", presenter, "Radio2Checked");
      }
  </code></pre>