如何强制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;
            }

如何强制windows phone 8中的TextBox允许点后有两位数的十进制数字

为此,您应该使用mvvm-light工具包/架构。

然后将文本框绑定到一个属性。

然后,属性可以有一个数据注释,它可以是一个正则表达式,只允许这样的文本