internal VirtualizedItemInfo GetVirtualizedItemInfoAtIndex(int index, bool createPageIfLineNotFound, bool preventMovePageToFront) { VirtualizedItemInfo virtualizedItemInfo = null; VirtualPage page = this.GetPageOrDefaultForItemIndex(index, preventMovePageToFront); if (page != null) { virtualizedItemInfo = page.GetVirtualizedItemInfoAtIndex(index); Debug.Assert(virtualizedItemInfo != null); //if( ( virtualizedItemInfo == null ) && ( createPageIfLineNotFound ) ) //{ // // No VirtualizedItemInfo was found at the requested index. // LinkedListNode<VirtualPage> firstPageNode = m_pageNodes.First; // Debug.Assert( firstPageNode != null, "If the page is not null, there should be at least one page in the book." ); // if( firstPageNode.Value != page ) // { // // page = this.CreateNewPage( index ); // virtualizedItemInfo = page.GetVirtualizedItemInfoAtIndex( index ); // this.AddPageToFront( page ); // } //} } else if (createPageIfLineNotFound) { page = this.CreateNewPage(index); virtualizedItemInfo = page.GetVirtualizedItemInfoAtIndex(index); m_pagingManager.AddPage(page, VirtualPageManager.PageInsertPosition.Front); } return(virtualizedItemInfo); }
internal VirtualizedItemInfo GetVirtualizedItemInfoAtIndex(int index, bool createPageIfLineNotFound, bool preventMovePageToFront) { VirtualizedItemInfo virtualizedItemInfo = null; VirtualPage page = this.GetPageOrDefaultForItemIndex(index, preventMovePageToFront); if (page != null) { virtualizedItemInfo = page.GetVirtualizedItemInfoAtIndex(index); Debug.Assert(virtualizedItemInfo != null); } else if (createPageIfLineNotFound) { page = this.CreateNewPage(index); virtualizedItemInfo = page.GetVirtualizedItemInfoAtIndex(index); m_pagingManager.AddPage(page, VirtualPageManager.PageInsertPosition.Front); } return(virtualizedItemInfo); }