TextBox con CurrencyFormat y PropertyChanged trigger no acepta texto correcto

Tengo unTextBox en una ventana WPF vinculada a una propiedad de dependencia de la ventana de tipodouble (vea abajo). Cada vez que el usuario escribe laTextBox cuand

LosTextBox está vacío oSe selecciona todo el texto,

el texto escrito se acepta incorrectamente. Por ejemplo: si escribo un '5' en cualquiera de estos escenarios, el texto resultante es "$ 5.00", pero el cursor se encuentra antes del '5', después del '!$7$!#39;. Si trato de escribir "52.1", obtengo "$ 2.15.00".

<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}}">
    <Grid>
        <TextBox Text="{Binding ElementName=ThisWindow,
                                Path=Amount,
                                StringFormat={}{0:c},
                                UpdateSourceTrigger=PropertyChanged}"
                 VerticalAlignment="Center"
                 HorizontalAlignment="Center"
                 MinWidth="100" />
    </Grid>
</Window>

Si elimino el atributo UpdateSourceTrigger, se escribe correctamente, pero no mantiene el formato de moneda.

¿Algunas ideas

Respuestas a la pregunta(2)

Su respuesta a la pregunta