我不确定如何为这个问题撰写标题,让我深入探讨这个问题......
我在WPF应用程序中有一个文本框。此文本框具有双向绑定到类中的属性 - 整数。该整数表示货币金额乘以100 - 例如$ 100.00 - > 10000整数值。
我正在寻找一种格式,可能允许用户在带有小数的文本框中输入金额的值,并将该值以我上面描述的方式存储为整数。它还应显示在适当位置添加小数的任何值。
e.g。用户输入$ 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
有什么想法吗?我知道我可能做了一个糟糕的工作,解释我在寻找什么,所以如果有什么不清楚的地方,请询问,我会澄清。
答案 0 :(得分:4)
处理此问题的典型方法是使用IValueConverter
,而不是字符串格式绑定。
这将允许您以您选择的任何格式转换文本和从文本转换,但将数据存储为整数。
答案 1 :(得分:2)
您已经标记了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);