Modificación de los parámetros del enlace de texto de un cuadro de texto mediante el uso de un estilo

Me gustaría tener unTextBox que muestra un número en formato de moneda (estableciendoStringFormat=c en el enlace). Cuando elTextBox está seleccionado (cuandoIsKeyboardFocused==true), Me gustaría que el formato desaparezca, hasta que se centre en laTextBox está perdido

Encontré una manera de hacer esto, el código pegado a continuación. Mi problema con esto es que el enlace se especifica dentro de laStyle: esto significa que tengo que volver a escribir el estilo para cadaTextBox Quiero hacer esto por. Idealmente, me gustaría poner el estilo en algún lugar central y reutilizarlo para cadaTextBox, con un objetivo de enlace diferente para cada uno.

Hay una manera para mí, usando unaStyle, para establecer un parámetro en el enlace existente, algo así comoText.Binding.StringFormat=""? (En lugar de establecer el valor completo de Texto en un Enlace recién definido)

Otras sugerencias para lograr esto también serían apreciadas.

Code (esto funciona, es un inconveniente):

<TextBox x:Name="ContractAmountTextBox">
<TextBox.Style>
    <Style TargetType="{x:Type TextBox}">                                       
        <Style.Triggers>
            <DataTrigger Binding="{Binding IsKeyboardFocused, ElementName=ContractAmountTextBox}" Value="False">
                <Setter Property="Text" Value="{Binding Path=ContractAmount, UpdateSourceTrigger=LostFocus, StringFormat=c}"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding IsKeyboardFocused, ElementName=ContractAmountTextBox}" Value="True">
                <Setter Property="Text" Value="{Binding Path=ContractAmount, UpdateSourceTrigger=LostFocus}"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</TextBox.Style>

Respuestas a la pregunta(1)

Su respuesta a la pregunta