Пример #1
0
 public static IObservable <Unit> AnyCollectionChangeAsObservable <T>(this IReadOnlyReactiveCollection <T> reactiveCollection)
 {
     return(Observable.Merge(
                reactiveCollection.ObserveReset().AsUnitObservable(),
                reactiveCollection.ObserveAdd().AsUnitObservable(),
                reactiveCollection.ObserveMove().AsUnitObservable(),
                reactiveCollection.ObserveRemove().AsUnitObservable(),
                reactiveCollection.ObserveReplace().AsUnitObservable()));
 }
Пример #2
0
        public CollectionBinder(IReadOnlyReactiveCollection <T> source, BaseListItem <T> prefab, Transform parent)
        {
            this.source = source;
            this.prefab = prefab;
            this.parent = parent;
            prefab.gameObject.SetActive(false);

            onAdd     = source.ObserveAdd().Subscribe(@event => UpdateCollection());
            onMove    = source.ObserveMove().Subscribe(@event => UpdateCollection());
            onReset   = source.ObserveReset().Subscribe(@event => UpdateCollection());
            onRemove  = source.ObserveRemove().Subscribe(@event => UpdateCollection());
            onReplace = source.ObserveReplace().Subscribe(@event => UpdateCollection());

            UpdateCollection();
        }