我一直在寻找一些线索强制通过一些事件文本框,只允许我输入数字并在该点之后仅构建一个十进制数字,例如jQuery.MaskMoney与jQuery一起开发,因为在windows phone需要收集这些信息。但到目前为止,我已经找到了我在代码中尝试复制的内容,但没有成功。正则表达式有帮助,但想法是强制用户但不显示验证我的正则表达式的验证消息。据我所知,Windows Phone 8中的开发在资源方面有点受限,因此我假设需要的是自定义。
<TextBox Name="TxtAmountValue" InputScope="Number" Style="{StaticResource MyTextBoxStyle}" MaxLength="5" />
例如,如果要支付的金额是12.52,应该出现的是:0.01 - &gt; 0.12 - &gt; 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;
}
答案 0 :(得分:0)
为此你应该使用mvvm light toolkit / architecture。
然后将文本框绑定到属性。
然后,该属性可以具有数据注释,该注释可以是仅允许此类文本的正则表达式