Перейти к основному содержимому

InputField Binders

Биндеры для TMP_InputField с поддержкой двусторонней привязки, числовых типов и различных событий.


InputFieldBinder

Основной биндер для ввода текста.

ИнтерфейсОписание
IBinder<string?>Получает текст от ViewModel
IReverseBinder<string>Отправляет изменения обратно
INumberBinderПринимает числовые типы
INumberReverseBinderОтправляет числа обратно

Inspector-свойства

СвойствоОписание
UpdateEventСобытие обновления: OnValueChanged, OnEndEdit, OnSubmit, OnSelect, OnDeselect
ConverterIConverter<string?, string?> (опционально)

Защита от циклов

Флаг _isNotifyValueChanged предотвращает бесконечную рекурсию при TwoWay-привязке: когда ViewModel обновляет InputField, обратное событие блокируется.

Числовые режимы

При ContentType IntegerNumber или DecimalNumber — парсит строку в число и отправляет через INumberReverseBinder.

Режимы: OneWay, TwoWay, OneTime, OneWayToSource.

[ViewModel]
public partial class FormViewModel
{
[TwoWayBind] private string _userName;
}

Дополнительные биндеры

БиндерПривязываетТип
InputFieldCharacterValidationBindercharacterValidationCharacterValidation
InputFieldContentTypeBindercontentTypeContentType
InputFieldInputTypeBinderinputTypeInputType
InputFieldLineTypeBinderlineTypeLineType

Каждый имеет Switcher-вариант (bool → выбор между двумя значениями). После записи вызывается ForceLabelUpdate.

БиндерПривязываетТип
InputFieldCharacterLimitBindercharacterLimitint, 0 без лимита
InputFieldCaretPositionBindercaretPositionint, зажимается в длину текста
InputFieldReadOnlyBinderreadOnlybool
InputFieldPlaceholderBinderplaceholderGraphic

InputFieldCommandBinder

Выполняет команду на выбранном событии поля (UpdateInputFieldEvent): IRelayCommand без аргументов или IRelayCommand<string> с текстом. Варианты <T>, <T1, T2>, <T1, T2, T3> передают после текста дополнительные параметры. InteractableMode работает как у ButtonCommandBinder.


См. также