2017-05-18 16 views
0

我希望用户输入运费数据作为美国货币金额(如23.45美元)。他们将进入23.45在RadWatermarkTextbox中将数据格式化为货币

如果设置为RadWatermarkTextbox,23.45不能在没有准备通这些步骤中输入: '#00'

1) Enter 23 
2) Use the arrow key to navigate to the cents (skip over the decimal point) 
3) Enter 45 (.00 shifts over to the right making it look like $23.45.00) 
4) Delete the .00 

我改变了格式的StringFormat =,的StringFormat = F2,和没有字符串格式。这些并没有解决问题。

我在网上发现了这个建议,但不能输入小数点。所有可以进入是FreightRate 2345

Private Sub txtDefaultFreightRate_PreviewTextInput(sender As Object, e As TextCompositionEventArgs) Handles txtDefaultFreightRate.PreviewTextInput 

    Dim regex As New Regex("^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$") 
    e.Handled = Not regex.IsMatch(TryCast(sender, System.Windows.Controls.TextBox).Text.Insert(TryCast(sender, System.Windows.Controls.TextBox).SelectionStart, e.Text)) 

    For Each ch As Char In e.Text 
     If Not ([Char].IsDigit(ch) OrElse ch.Equals("."c)) Then 
      e.Handled = True 
     End If 
    Next 

End Sub 

XAML:

<telerik:RadWatermarkTextBox x:Name="txtDefaultFreightRate" 
    Margin="0,2,0,0" 
    Text="{Binding defaultFreightRate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat='{}{0:C2}'}" 
    <telerik:RadWatermarkTextBox.WatermarkContent> 
     <TextBlock Text="Enter in format $$$.$$ " FontSize="12" Foreground="#969696" /> 
    </telerik:RadWatermarkTextBox.WatermarkContent> 
</telerik:RadWatermarkTextBox> 

如果换成一个WPF文本框,然后输入数据作为货币按预期工作。 XAML为此:

<TextBox Text="{Binding defaultFreightRate, Mode=TwoWay, StringFormat='{}{0:C2}'}" Width="100" Height="25" /> 

难道不能在RadWatermarkTextBox中将数据输入格式化为金钱吗?关于这一点,我在网上找不到很多。我认为格式化将与常规文本框相同。

感谢

回答

1

尝试删除UpdateSourceTrigger=PropertyChanged

<telerik:RadWatermarkTextBox x:Name="txtDefaultFreightRate" 
          Margin="0,2,0,0" 
          Text="{Binding defaultFreightRate, Mode=TwoWay, StringFormat='{}{0:C2}'}"> 
    <telerik:RadWatermarkTextBox.WatermarkContent> 
     <TextBlock Text="Enter in format $$$.$$ " FontSize="12" Foreground="#969696" /> 
    </telerik:RadWatermarkTextBox.WatermarkContent> 
</telerik:RadWatermarkTextBox> 
+0

感谢。这解决了这个问题。 – EManning