public int GetGlobalIndexOf(object item) { ReadOnlyCollection <VirtualList> virtualItemLists = this.ManagedLists; int virtualItemListsCount = virtualItemLists.Count; for (int i = 0; i < virtualItemListsCount; i++) { VirtualList localList = virtualItemLists[i]; int localIndex = localList.IndexOf(item); if (localIndex >= 0) { Debug.Assert(m_virtualListVSCollectionViewGroupDictionary.ContainsKey(localList)); DataGridVirtualizingCollectionViewGroupBase dgvcvg = m_virtualListVSCollectionViewGroupDictionary[localList]; return(localIndex + dgvcvg.StartGlobalIndex); } } return(-1); }
internal VirtualizedItemValueCollection GetCachedValuesForItem(object item) { LinkedListNode <VirtualPage> pageNode = m_pageNodes.First; while (pageNode != null) { VirtualList virtualList = pageNode.Value.ParentVirtualList; Debug.Assert(m_managedLists.Contains(virtualList)); int localIndex = virtualList.IndexOf(item); if (localIndex != -1) { return(virtualList.GetCachedValuesForItemAtIndex(localIndex)); } pageNode = pageNode.Next; } return(null); }
internal void ClearCachedValuesForItem(object item) { LinkedListNode <VirtualPage> pageNode = m_pageNodes.First; while (pageNode != null) { VirtualList virtualList = pageNode.Value.ParentVirtualList; Debug.Assert(m_managedLists.Contains(virtualList)); int localIndex = virtualList.IndexOf(item); if (localIndex != -1) { virtualList.ClearCachedValuesForItemAtIndex(localIndex); return; } pageNode = pageNode.Next; } throw new InvalidOperationException("An attempt was made to leave the edit process on an unknown item."); }