MergeBindableProperty<TValue> constructor

MergeBindableProperty<TValue>(
  1. Iterable<ValueListenable<TValue>> listenables, {
  2. PropertyValueChanged<Iterable<TValue>>? valueChanged,
})

创建合并的绑定属性

将多个 ValueListenable 合并成一个新的 ValueListenable, 新的 ValueListenablevalue 为多个 ValueListenable 的值集合

listenables 指定将要合并的 ValueListenable 集合

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

Implementation

MergeBindableProperty(Iterable<ValueListenable<TValue>> listenables,
    {PropertyValueChanged<Iterable<TValue>>? valueChanged})
    : super(valueChanged: valueChanged) {
  _value = UnmodifiableListView(_realValue);
  for (var vl in listenables) {
    var index = _realValue.length;
    var listener = () {
      _realValue[index] = vl.value;
      notifyListeners();
    };
    _realValue.add(vl.value);
    vl.addListener(listener);
    disposeFn(() => vl.removeListener(listener));
  }
}