Пример #1
0
            private void AddedToOuter(int outerIndex, ReadOnlyObservableCollection <T> inner)
            {
                var handler = inner?.AddChangeHandlers <ReadOnlyObservableCollection <T>, T>(
                    (index, item) => this.AddedToInner(inner, index, item),
                    (index, item) => this.RemovedFromInner(inner, index),
                    () => this.ClearedInner(inner));

                this.unsubscribeCallbacks.Insert(outerIndex, () => Unsubscribe(inner, handler));
            }
Пример #2
0
            internal FilterCollection(
                ReadOnlyObservableCollection <T> originalItems, Predicate <T> predicate, IComparer <T> comparer)
            {
                this.predicate = predicate ?? throw new ArgumentNullException(nameof(predicate));
                this.comparer  = comparer;
                var handler = originalItems.AddChangeHandlers <ReadOnlyObservableCollection <T>, T>(
                    this.InsertIfMatch, this.Remove, this.Clear);

                this.RegisterForRemoval(originalItems, handler);
            }