Привязка десятичной дроби к UITextField не позволяет вам ставить "." in, когда вы набираете «1», нажатие на источник удаляет его. Я понимаю, почему это происходит, MakeSafeValue преобразует его в десятичное число, которое считывается обратно без ".", Перезаписывая введенный текст. Это похоже на проблему с клавиатурой и onblur, которую многие связывающие фреймворки позволяют вам переопределить.
Я знаю, что мог бы вместо этого привязать строку к модели представления, но обработка EditingDidEnd вместо EditingChanged кажется лучше. Таким образом, я мог перехватить ShouldEndEditing для проверки действительности.
Где мне зарегистрировать привязку, чтобы переопределить реализацию MvvmCross? Я попытался добавить в свой Setup.FillTargetFactories, но он вызывается до MVXTouchBindingBuilder.FillTargetFactories, где находится MvvmCross.
Я пробовал другое имя свойства, в FillTargetFactories у меня есть:
registry.RegisterPropertyInfoBindingFactory(typeof (UITextFieldTextDidEndTargetBinding), typeof (UITextField), "DidEndText");
но при привязке не работает.
set.Bind(textField).For("DidEndText").To(vm => vm.GMoney);
похоже, что MvxPropertyInfoTargetBindingFactory.CreateBinding не работает, если у цели нет этого свойства = имеет смысл. Остается ли мне начать с MvxTargetBinding и создать настраиваемую привязку? Ненавижу воссоздавать большую часть кода в MvxPropertyInfoTargetBinding.
Итак, я предполагаю, что вопрос (ы) в том ...
- каков синтаксис / местоположение, чтобы переопределить привязку UITextField по умолчанию с моей?
- как я могу указать другую привязку для текста с синтаксисом привязки?
Заранее спасибо.