WPF文本框字符串格式忽略十进制



我不知道该如何写这个问题的标题,让我深入研究一下,让它更清楚…

我在WPF应用程序中有一个文本框。这个文本框有两种方式绑定到类中的一个属性——一个整数。此整数表示货币金额乘以100 -例如$100.00 -> 10000的整数值。

我正在寻找一种格式,允许用户在文本框中输入带有小数的金额值,并以我上面描述的方式将该值存储为整数。它还应该显示任何在适当位置加了小数点的值。

。用户输入$22.31,整数变为2231,值54598显示为$545.98

有什么好主意吗?我现在在绑定中使用的是货币字符串格式,但这对我来说还不够。

<TextBox
    Name"TotalAmountLabel"
    Text="Binding Path=TotalAmount, StringFormat=C, Mode=TwoWay}" />

和底层属性:

Private _TotalAmount As Integer
Public Property TotalAmount() As Integer
    Get
        Return _TotalAmount
    End Get
    Set(ByVal value As Integer)
        _TotalApprovalAmount = value
    End Set
End Property

任何想法?我知道我可能没有很好地解释我在寻找什么,所以如果有什么不清楚的,请问我,我会澄清的。

处理此问题的典型方法是使用IValueConverter,而不是字符串格式绑定。

这将允许您以您选择的任何格式转换文本,但将数据存储为整数。

您已经标记了c#和VB,我的解决方案是c#解决方案。假设用户最多只能输入2个小数点:

 String toInteger = Regex.Replace(TextBox.Text,"[$]|[.]","");
 // You can cast the toInteher to int value if you want like:
 // Convert.ToInt32(toInteger);
 String toValue = "$" + toInteger.Substring(0, toInteger.Lenght-2) + "." + toInteger.Substring(toInteger.Lenght-2, 2);  

最新更新