title: Create a delay before validation errors are presented to the user
body: <p>In this specific WPF application which follows the MVVM pattern, the view model implements the IDataErrorInfo interface to notify the view of invalid data in text fields.</p>
  
  <p>A text box exists in the view where you can enter a volume. This has been specified with property changed update source, and validate data errors:</p>
  
  <pre><code>&lt;TextBox 
      Text="{Binding Volume, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" /&gt;
  </code></pre>
  
  <p>The problem with this is that you get a validation error before the user has finished typing. E.g., a valid value is "25 ml". But before the user has typed in the last "l", then "25 m" is present in the text box. This is not a valid value and will result in the IDataError implementation saying so.</p>
  
  <p>The result is, as the user is typing, a red marker flashes around the text box.</p>
  
  <p>We would like to have a little delay (0.5 sec) before the red marker appears around the text box, so we can assume that the user has finished typing before showing validation errors.</p>
  
  <p>The first attempt was to create a specialized text box that waits .5 sec before updating the property in the view model. But that is no good, because in the case that the user does enter a valid value, then .5 second passes before the submit button gets enabled.</p>
  
  <p>I have an idea that you could write a specialized binding (i.e. create a specialized class derived from System.Windows.Data.Binding) that implements this behavior, but I have no idea how to do this.</p>
  
  <p>Is that a plausible way, or is there a better?</p>