在我Xamarin的形式查看我有一个入口控制,这是我补充说,Xamarin数字领域唯一
myEntry.Keyboard = Keyboard.Numeric;
,使其只允许十进制。
在Android设备中,此代码在任何给定时间只接受一个小数点。
但是在IOS中,它接受多个小数点?有什么办法可以限制IOS中的一个小数点吗?
在我Xamarin的形式查看我有一个入口控制,这是我补充说,Xamarin数字领域唯一
myEntry.Keyboard = Keyboard.Numeric;
,使其只允许十进制。
在Android设备中,此代码在任何给定时间只接受一个小数点。
但是在IOS中,它接受多个小数点?有什么办法可以限制IOS中的一个小数点吗?
在Xamarin.Forms进入你有框TextChanged事件处理程序,您可以点击进入入口发生变化时。
您将得到都的旧的文本字符串,也是新的文本字符串值。
然后,您可以做一个计数上都在新的文本字符串小数点的数量,检查,看它是否大于1更大。
如果是,只需将Entry.Text设置为旧值,然后你将只拥有一个小数点。
谢谢你的工作就像一个魅力。 – TBA 2014-10-31 09:15:29
使用TextChanged事件处理程序,您可以使用各种TryParse方法之一。这些方法可以被赋予特定的文化和风格。以下示例使用Double的版本。
private void Entry_TextChanged(object sender, TextChangedEventArgs e)
{
string newValue = e.NewTextValue;
double value;
if (double.TryParse(newValue, out value))
{
// Do logic for valid value
}
else
{
// Do logic for invalid value
}
}
此[链接](http://stackoverflow.com/questions/7531095/how-do-i-change-the-number-of-decimal-places-ios)可能会帮助 – 2014-10-27 16:06:04
如果它适用于Android,而不是iOS,听起来像是一个bug。 Xamarin.Forms应该在所有平台上提供一致的功能。你可以用下面的答案来解决这个问题,但是最好你也要把这个报告给Xamarin来修复。 – 2014-10-27 16:17:46