2014-10-27 76 views
0

在我Xamarin的形式查看我有一个入口控制,这是我补充说,Xamarin数字领域唯一

myEntry.Keyboard = Keyboard.Numeric; 

,使其只允许十进制。

在Android设备中,此代码在任何给定时间只接受一个小数点。

但是在IOS中,它接受多个小数点?有什么办法可以限制IOS中的一个小数点吗?

+0

此[链接](http://stackoverflow.com/questions/7531095/how-do-i-change-the-number-of-decimal-places-ios)可能会帮助 – 2014-10-27 16:06:04

+0

如果它适用于Android,而不是iOS,听起来像是一个bug。 Xamarin.Forms应该在所有平台上提供一致的功能。你可以用下面的答案来解决这个问题,但是最好你也要把这个报告给Xamarin来修复。 – 2014-10-27 16:17:46

回答

3

Xamarin.Forms进入你有框TextChanged事件处理程序,您可以点击进入入口发生变化时。

您将得到旧的文本字符串,也是新的文本字符串值。

然后,您可以做一个计数上都在新的文本字符串小数点的数量,检查,看它是否大于1更大

如果是,只需将Entry.Text设置为旧值,然后你将只拥有一个小数点。

+0

谢谢你的工作就像一个魅力。 – TBA 2014-10-31 09:15:29

0

使用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 
    } 
}