WPF文本框删除焦点上的货币格式

isa*_*vis 3 wpf

是否可以删除焦点上WPF文本框上的货币格式?该应用程序遵循MVVM.

<TextBox HorizontalAlignment="Left"
         Height="23"
         Margin="156,264,0,0"
         TextWrapping="Wrap"
         HorizontalContentAlignment="Right"
         Text="{Binding Amount, StringFormat=c, ValidatesOnNotifyDataErrors=True}"
         VerticalAlignment="Top"
         Width="100" />
Run Code Online (Sandbox Code Playgroud)

文本框没有焦点时我需要格式化.但只有当它具有焦点以便用户轻松编辑时才需要将其删除.删除$的原因是当您选择Tab时,焦点位于$之前.这意味着用户必须再次单击或使用箭头键移动到数字.

当用户选中上述文本框时,应删除货币符号.谢谢你的帮助.

kma*_*zek 8

您可以编写触发器,该触发器将在TextBox聚焦时以及您可以更改时执行StringFormat.

TextBox 样式:

<TextBox TextWrapping="Wrap"
         Height="23" Width="200" 
         HorizontalAlignment="Left" HorizontalContentAlignment="Right" VerticalAlignment="Top">
    <TextBox.Style>
        <Style TargetType="TextBox">                   
            <Setter Property="Text" Value="{Binding Amount, StringFormat=C, UpdateSourceTrigger=LostFocus}" />
            <Style.Triggers>
                <Trigger Property="Control.IsFocused" Value="True">
                    <Setter Property="Text" Value="{Binding Amount, StringFormat=F2, UpdateSourceTrigger=LostFocus}" />                            
                </Trigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>
Run Code Online (Sandbox Code Playgroud)