title: TextBox with CurrencyFormat and PropertyChanged trigger doesn't accept text right
body: <p>I have a <code>TextBox</code> in a WPF window bound to a dependency property of the window of type <code>double</code> (see below).  Whenever the user types in the <code>TextBox</code> when </p>
  
  <ol>
  <li>The <code>TextBox</code> is empty, or</li>
  <li>All of the text is selected,</li>
  </ol>
  
  <p>the typed text is accepted incorrectly.  For example:  If I type a '5' in either of these scenarios, the resulting text is "$5.00", but the caret is located before the '5', after the '$'.  If I try to type "52.1", I get "$2.15.00".</p>
  
  <pre><code>&lt;Window x:Class="WPF.MainWindow"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          Title="MainWindow" Height="154" Width="240" Name="ThisWindow"
          Background="{StaticResource {x:Static SystemColors.AppWorkspaceBrushKey}}"&gt;
      &lt;Grid&gt;
          &lt;TextBox Text="{Binding ElementName=ThisWindow,
                                  Path=Amount,
                                  StringFormat={}{0:c},
                                  UpdateSourceTrigger=PropertyChanged}"
                   VerticalAlignment="Center"
                   HorizontalAlignment="Center"
                   MinWidth="100" /&gt;
      &lt;/Grid&gt;
  &lt;/Window&gt;
  </code></pre>
  
  <p>If I remove the UpdateSourceTrigger attribute, it types correctly, but doesn't maintain the currency format.</p>
  
  <p>Any ideas?</p>