TransformBindableProperty<S, T> constructor

TransformBindableProperty<S, T>(
  1. ValueListenable<S> source, {
  2. required T? transformer(
    1. S
    ),
  3. required T initial,
  4. PropertyValueChanged<T>? valueChanged,
})

创建一个具有转换功能的绑定属性,该绑定属性监视 source 的值变化,当 source 值发生变化时使用 transformer 对值进行转换, 如转换结果非 null,则将结果值写入属性(可能会触发 notify)

source 指定源

transformer 指定值转换方法,如该方法返回 null 则将该值写入属性(可能会触发 notify)

initial 指定初始值

valueChanged 指定属性值变更后的回调方法

Implementation

TransformBindableProperty(ValueListenable<S> source,
    {required T? Function(S) transformer,
    required T initial,
    PropertyValueChanged<T>? valueChanged})
    : _source = source,
      _value = transformer(source.value) ?? initial,
      super(valueChanged: valueChanged) {
  _transformListener = () => _setValue(transformer(source.value));
  _source.addListener(_transformListener);
}