如何强制windows phone 8中的TextBox允许点后有两位数的十进制数字
本文关键字:两位 十进制数字 phone windows 何强制 中的 许点 TextBox | 更新日期: 2023-09-27 18:24:28
我一直在寻找一些线索来强行通过一些事件文本框,该文本框只允许我输入数字,并在点后2位构建一个十进制数字,类似于jQuery。MaskMoney正在使用jQuery开发,因为在windows phone中需要收集这些信息。但到目前为止,我已经找到了我试图在代码中复制的内容,但没有成功。正则表达式有帮助,但其想法是强制用户,但不显示验证我的正则表达式的验证消息。我知道Windows Phone 8的开发在资源方面有点有限,所以我认为需要的是自定义。
<TextBox Name="TxtAmountValue" InputScope="Number" Style="{StaticResource MyTextBoxStyle}" MaxLength="5" />
例如,如果要支付的金额为12.52,则应显示的金额为:0.01->0.12->1.25,直至12.52
更新
decimal value;
if (decimal.TryParse(control.Text, NumberStyles.Any, CultureInfo.InvariantCulture, out value))
{
if (e.Key == Key.Back && str.Length > 0)
{
str = (value / 10).ToString("#0.00");
}
else
{
if (str.Length == 1 && value == 0)
{
str = value.ToString("#0.00", CultureInfo.InvariantCulture);
}
else if (str.Length >= 4 && str.Length <= 5)
{
decimal tempValue = value;
str = (value * 10).ToString("#0.00");
if (str.Length > 5)
{
str = tempValue.ToString("#0.00", CultureInfo.InvariantCulture);
}
}
else
{
str = (value / 100).ToString("#0.00");
}
}
control.Text = str;
control.SelectionStart = control.Text.Length;
}
为此,您应该使用mvvm-light工具包/架构。
然后将文本框绑定到一个属性。
然后,属性可以有一个数据注释,它可以是一个正则表达式,只允许这样的文本