title: NumericUpDown DataBinding property not updating when value changes
body: <p>I am attempting to perform a DataBinding on a NumericUpDown WinForm control. Performing the binding works as designed, but I am having an issue with the value not being pushed to the binded property until the element goes out of focus. Is there something I am missing to get the property to update when the value changes in the control without requiring the focus to be lost?</p>
  
  <p>If this is working as designed, is there a way to force the property update without losing focus?</p>
  
  <p>Logic:</p>
  
  <pre><code>using System;
  using System.Windows.Forms;
  
  public partial class Form1 : Form
  {
      private NumericUpDown numericUpDown1 = new NumericUpDown();
      private ExampleData _ed = new ExampleData();
  
      public Form1()
      {
          InitializeComponent();
      }
  
      private void Form1_Load(object sender, EventArgs e)
      {
          // Define the UI Control
          numericUpDown1.DecimalPlaces = 7;
          numericUpDown1.Location = new System.Drawing.Point(31, 33);
          numericUpDown1.Name = "numericUpDown1";
          numericUpDown1.Size = new System.Drawing.Size(120, 20);
          numericUpDown1.TabIndex = 0;
  
          // Add the UI Control
          Controls.Add(numericUpDown1);
  
          // Bind the property to the UI Control
          numericUpDown1.DataBindings.Add("Value", _ed, nameof(_ed.SampleDecimal));
  
          numericUpDown1.ValueChanged += NumericUpDown1_ValueChanged;
      }
  
      private void NumericUpDown1_ValueChanged(object sender, EventArgs e)
      {
          // This will fire as you change the control without losing focus.
          System.Diagnostics.Debugger.Break();
      }
  }
  
  public class ExampleData
  {
      public decimal SampleDecimal
      {
          get { return _sampleDecimal; }
          set
          {
              // This set isn't called until after you lose focus of the control.
              System.Diagnostics.Debugger.Break();
              _sampleDecimal = value;
          }
      }
  
      private decimal _sampleDecimal = 1.0m;
  }
  </code></pre>