MergeMapBindableProperty<TValue> constructor

MergeMapBindableProperty<TValue>(
  1. Map<Object, ValueListenable<TValue>> map, {
  2. PropertyValueChanged<Map<Object, TValue>>? valueChanged,
})

创建具有键的合并的绑定属性

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

map 指定将要合并的具有键的 ValueListenable 集合

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

Implementation

MergeMapBindableProperty(Map<Object, ValueListenable<TValue>> map,
    {PropertyValueChanged<Map<Object, TValue>>? valueChanged})
    : super(valueChanged: valueChanged) {
  _value = UnmodifiableMapView(_realValue);
  for (var kv in map.entries) {
    var key = kv.key, vl = kv.value;
    var listener = () {
      _realValue[key] = vl.value;
      notifyListeners();
    };
    vl.addListener(listener);
    _realValue[key] = vl.value;
    disposeFn(() => vl.removeListener(listener));
  }
}