2014-10-27 75 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 
    } 
}