private void RecycleItems(ItemLayoutInfo layoutInfo) { foreach (UIElement child in Children) { var virtualItemIndex = GetVirtualItemIndex(child); if (virtualItemIndex < layoutInfo.FirstRealizedItemIndex || virtualItemIndex > layoutInfo.LastRealizedItemIndex) { var generatorPosition = _itemsGenerator.GeneratorPositionFromIndex(virtualItemIndex); if (generatorPosition.Index >= 0) { try { _itemsGenerator.Recycle(generatorPosition, 1); } catch (ArgumentException) { //I have seen the following exception which appears to be a non-issue // GeneratorPosition '0,10' passed to Remove does not have Offset equal to 0. } } } SetVirtualItemIndex(child, -1); } }
private void RecycleItems(ItemLayoutInfo layoutInfo) { foreach (var child in Children.OfType <UIElement>()) { var virtualItemIndex = GetVirtualItemIndex(child); if (virtualItemIndex < layoutInfo.FirstRealizedItemIndex || virtualItemIndex > layoutInfo.LastRealizedItemIndex) { var generatorPosition = _itemsGenerator.GeneratorPositionFromIndex(virtualItemIndex); if (generatorPosition.Index >= 0) { _itemsGenerator.Recycle(generatorPosition, 1); } } SetVirtualItemIndex(child, -1); } }
private void RecycleItems(ItemLayoutInfo layoutInfo) { foreach (var child in Children.OfType<UIElement>()) { var virtualItemIndex = GetVirtualItemIndex(child); if (virtualItemIndex < layoutInfo.FirstRealizedItemIndex || virtualItemIndex > layoutInfo.LastRealizedItemIndex) { var generatorPosition = _itemsGenerator.GeneratorPositionFromIndex(virtualItemIndex); if (generatorPosition.Index >= 0) { _itemsGenerator.Recycle(generatorPosition, 1); } } SetVirtualItemIndex(child, -1); } }