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

Slider Binders

Биндеры для компонента Slider Unity UI.


SliderValueBinder

Привязка значения слайдера (Slider.value).

ИнтерфейсОписание
INumberBinderПринимает int, float, long, double
INumberReverseBinderОтправляет изменения обратно (events)

Inspector-свойства

СвойствоОписание
ConverterIConverter<float, float> (опционально)

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

Запись из ViewModel вызывает onValueChanged для остальных слушателей, но биндер не отправляет её обратно в ViewModel. Значение clamp-ится к диапазону слайдера; если clamp его изменил, изменённое значение отправляется в ViewModel.

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

[ViewModel]
public partial class VolumeViewModel
{
[TwoWayBind] private float _volume; // 0.0 - 1.0
}

SliderMinMaxBinder

Привязка минимального и максимального значений слайдера (Slider.minValue, Slider.maxValue).

ИнтерфейсОписание
IBinder<Vector2>x = minValue, y = maxValue

Перевёрнутый диапазон логируется и разворачивается, неконечный — логируется и не применяется.

SliderRangeMode

Определяет, какую часть min/max обновлять:

РежимПоведение
MinОбновляет только minValue
MaxОбновляет только maxValue
RangeОбновляет и minValue, и maxValue

Режимы: OneWay, OneTime, OneWayToSource (TwoWay запрещён).

[ViewModel]
public partial class DifficultyViewModel
{
[OneWayBind] private Vector2 _damageRange; // (min, max) для слайдера
}

SliderMinMaxSwitcherBinder

bool → выбор между двумя значениями Vector2 для min/max. Поддерживает SliderRangeMode.

Режимы: OneWay, OneTime.


SliderCommandBinder

Привязка IRelayCommand<float> к Slider.onValueChanged. При изменении значения слайдера вызывает command.Execute(value).

Принимает числовые команды: IRelayCommand<int>, IRelayCommand<long>, IRelayCommand<float>, IRelayCommand<double>.

InteractableMode

Реакция на CanExecute — аналогично ButtonCommandBinder:

РежимПоведение
Interactableslider.interactable = canExecute
VisiblegameObject.SetActive(canExecute)
NoneНе реагирует
CustomВызывает ICanExecuteHandler.SetCanExecute(bool)

Параметризованные варианты

БиндерКомандаДоп. параметры
SliderCommandBinderIRelayCommand<float>
SliderCommandBinder<T>IRelayCommand<float, T>1 параметр
SliderCommandBinder<T1, T2>IRelayCommand<float, T1, T2>2 параметра
SliderCommandBinder<T1, T2, T3>IRelayCommand<float, T1, T2, T3>3 параметра

Первый параметр команды — всегда текущее значение слайдера.

Режимы: OneWay, OneTime.

[ViewModel]
public partial class AudioViewModel
{
[RelayCommand]
private void SetVolume(float value) { /* ... */ }
// → IRelayCommand<float> SetVolumeCommand
}

SliderToSourceMonoBinder

MonoBinder для OneWayToSource-привязки Slider как компонента. Наследует ComponentToSourceMonoBinder<Slider>.


См. также