2013-08-03 4 views
0

Я привязываю UITextView к полю типа данных float, и кажется, что механизм привязки чрезмерно проявляет бдительность при проверке моих данных, так что я не могу фактически вводить числа с плавающей запятой.Почему я не могу ввести десятичную точку в связанном UITextView?

В частности, если я нахожу «7» в своем UITextView, поле float в модели данных обновляется. Если я вставляю «7.2» в текстовое представление, он также обновляется. Но если я наберу «7.», (На пути к типизации «7.2»), связывание с ошибкой:

MvxBind:Error:365.27 SetValue failed with exception - FormatException: Invalid format.

Это, возможно, правильно, так как «7.» не является допустимой числовой строкой.

Но он также отбрасывает десятичную точку, поэтому я не могу ввести свой номер. Он просто оставляет «7» в текстовом представлении. Странно то, что это ТОЛЬКО влияет на символ десятичной точки/периода. Если я набираю «7X», он не связывается, но он позволяет мне вводить X. Что здесь происходит?

+0

Это было рассмотрено недавно - см. Https://github.com/slodge/MvvmCross/issues/350 - для двойного я считаю, что в apiexamples есть рабочий пример в mvvmcross-tutorials - см. TextView в https: // github .com/slodge/MvvmCross-Tutorials/blob/master/ApiExamples/ApiExamples.Touch/Views/FirstView.cs – Stuart

ответ

0

Просто может быть попытка связать со строковым значением и сделать немного вручную в строке кода < => конвертировать поплавки? Кроме того, это должно быть намного лучше на моноточе, особенно на основе общих функций .net, а не на реализации пользовательского интерфейса.

+0

Боюсь, я действительно не понимаю, что вы здесь говорите. –

+0

Я не думаю, что вы должны привязать UITextView к полю float. Вы должны привязать его к полю строки. И если вам нужно, чтобы эта строка была переведена на float, вы должны проверить формат самостоятельно в кодировке. –

Смежные вопросы