コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }