我不知道该如何写这个问题的标题,让我深入研究一下,让它更清楚…
我在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);