private void unregisterSourceItem(int sourceIndex) { int? removeIndex = null; ItemInfo itemInfo = _itemInfos[sourceIndex]; ExpressionWatcher watcher = itemInfo.ExpressionWatcher; watcher.Dispose(); Position itemInfoFilteredPosition = itemInfo.FilteredPosition; if (itemInfoFilteredPosition != null) { removeIndex = itemInfoFilteredPosition.Index; _filteredPositions.Remove(itemInfoFilteredPosition.Index); modifyNextFilteredItemIndex(sourceIndex, itemInfo.NextFilteredItemPosition); } _sourcePositions.Remove(sourceIndex); if (removeIndex.HasValue) { baseRemoveItem(removeIndex.Value); } }
private void unregisterSourceItem(int sourceIndex) { OrderingItemInfo <TOrderingValue> itemInfo = _itemInfos[sourceIndex]; Utils.disposeExpressionWatcher(itemInfo.ExpressionWatcher, itemInfo.NestedComputings, this, _orderingValueSelectorContainsParametrizedLiveLinqCalls); int orderedIndex = itemInfo.OrderedItemInfo.Index; _orderedPositions.Remove(orderedIndex); _sourcePositions.Remove(sourceIndex); _orderingValues.RemoveAt(orderedIndex); if (_thenOrderingsCount > 0) { RangePosition rangePosition = itemInfo.OrderedItemInfo.RangePosition; if (rangePosition.Length == 1) { _equalOrderingValueRangePositions.Remove(rangePosition.Index); } else { _equalOrderingValueRangePositions.ModifyLength(rangePosition.Index, -1); } } baseRemoveItem(orderedIndex); }
private void unregisterSourceItem(int sourceIndex) { ItemInfo itemInfo = _itemInfos[sourceIndex]; Utils.disposeExpressionWatcher(itemInfo.ExpressionWatcher, itemInfo.NestedComputings, this, _predicateContainsParametrizedObservableComputationCalls); _sourcePositions.Remove(sourceIndex); }
private void unregisterSourceItem(int index, bool replacing = false) { Utils.disposeExpressionWatcher(_itemInfos[index].ExpressionWatcher, _itemInfos[index].NestedComputings, this, _selectorContainsParametrizedObservableComputationsCalls); if (!replacing) { _sourcePositions.Remove(index); } }
private void unregisterSourceItem(int sourceIndex) { ItemInfo itemInfo = _itemInfos[sourceIndex]; ExpressionWatcher watcher = itemInfo.ExpressionWatcher; watcher.Dispose(); _sourcePositions.Remove(sourceIndex); }
private void unregisterSourceItem(int index, bool replacing = false) { ExpressionWatcher watcher = _itemInfos[index].ExpressionWatcher; watcher.Dispose(); if (!replacing) { _sourcePositions.Remove(index); } }
internal static bool ProcessChangeSourceItem <TSourceItem>(int sourceIndex, TSourceItem sourceItem, List <FilteringItemInfo> filteringItemInfos, IFiltering <TSourceItem> filtering, Positions <Position> filteredPositions, CollectionComputing <TSourceItem> current, ExpressionWatcher expressionWatcher) { if (expressionWatcher._disposed) { return(false); } FilteringItemInfo itemInfo = filteringItemInfos[sourceIndex]; bool newPredicateValue = filtering.applyPredicate(sourceItem, itemInfo.PredicateFunc); bool oldPredicateValue = itemInfo.FilteredPosition != null; if (newPredicateValue != oldPredicateValue) { if (newPredicateValue) { int newIndex = itemInfo.NextFilteredItemPosition.Index; itemInfo.FilteredPosition = filteredPositions.Insert(newIndex); newIndex = itemInfo.FilteredPosition.Index; modifyNextFilteredItemIndex(sourceIndex, itemInfo.FilteredPosition, filteringItemInfos); current.baseInsertItem(newIndex, sourceItem); return(true); } else // if (oldPredicaeValue) { int index = itemInfo.FilteredPosition.Index; filteredPositions.Remove(index); itemInfo.FilteredPosition = null; modifyNextFilteredItemIndex(sourceIndex, itemInfo.NextFilteredItemPosition, filteringItemInfos); current.baseRemoveItem(index); return(true); } } return(false); }
private void unregisterSourceItem(int sourceIndex) { int?removeIndex = null; FilteringItemInfo itemInfo = _itemInfos[sourceIndex]; Utils.disposeExpressionWatcher(itemInfo.ExpressionWatcher, itemInfo.NestedComputings, this, _predicateContainsParametrizedObservableComputationsCalls); Position itemInfoFilteredPosition = itemInfo.FilteredPosition; if (itemInfoFilteredPosition != null) { removeIndex = itemInfoFilteredPosition.Index; _filteredPositions.Remove(itemInfoFilteredPosition.Index); FilteringUtils.modifyNextFilteredItemIndex(sourceIndex, itemInfo.NextFilteredItemPosition, _itemInfos); } _sourcePositions.Remove(sourceIndex); if (removeIndex.HasValue) { baseRemoveItem(removeIndex.Value); } }