C# 如何强制windows phone 8中的文本框允许小数点后有两位数字

C# 如何强制windows phone 8中的文本框允许小数点后有两位数字,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,我一直在寻找一些线索来强制通过某个事件文本框,该文本框只允许我输入数字,并在点后2位创建一个十进制数字,类似于jQuery.MaskMoney正在使用jQuery进行开发,因为在windows phone中需要收集这些信息。但到目前为止,我已经在代码中找到了我试图复制的内容,但没有成功。正则表达式有帮助,但其目的是强制用户,但不显示验证我的正则表达式的验证消息。我知道WindowsPhone8的开发在资源方面有点有限,所以我认为需要的是定制 <TextBox Name="TxtAmount

我一直在寻找一些线索来强制通过某个事件文本框,该文本框只允许我输入数字,并在点后2位创建一个十进制数字,类似于jQuery.MaskMoney正在使用jQuery进行开发,因为在windows phone中需要收集这些信息。但到目前为止,我已经在代码中找到了我试图复制的内容,但没有成功。正则表达式有帮助,但其目的是强制用户,但不显示验证我的正则表达式的验证消息。我知道WindowsPhone8的开发在资源方面有点有限,所以我认为需要的是定制

<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;
            }
十进制值;
if(decimal.TryParse(control.Text,NumberStyles.Any,CultureInfo.InvariantCulture,out value))
{
如果(e.Key==Key.Back&&str.Length>0)
{
str=(值/10).ToString(#0.00”);
}
其他的
{
如果(str.Length==1&&value==0)
{
str=value.ToString(#0.00),CultureInfo.InvariantCulture);
}
否则如果(str.Length>=4和str.Length 5)
{
str=tempValue.ToString(#0.00),CultureInfo.InvariantCulture);
}
}
其他的
{
str=(值/100).ToString(#0.00”);
}
}
control.Text=str;
control.SelectionStart=control.Text.Length;
}

为此,您应该使用mvvm light toolkit/体系结构

然后将文本框绑定到属性


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

我用人工编码修复它,这对我来说很好。