예제 #1
0
            public DataGridPageManagerEnumerator(DataGridPageManagerBase dataGridPageManagerBase)
            {
                if (dataGridPageManagerBase == null)
                {
                    throw new ArgumentNullException("dataGridPageManagerBase");
                }

                m_dataGridPageManagerBase = dataGridPageManagerBase;

                VirtualList[] orderedVirtualLists =
                    m_dataGridPageManagerBase.m_virtualListVSCollectionViewGroupDictionary.Keys.OrderBy(
                        virtualList => m_dataGridPageManagerBase.m_virtualListVSCollectionViewGroupDictionary[virtualList].StartGlobalIndex).ToArray();

                m_orderedVirtualListEnumerators = new VirtualListEnumerator[orderedVirtualLists.Length];

                for (int i = 0; i < orderedVirtualLists.Length; i++)
                {
                    m_orderedVirtualListEnumerators[i] = ( VirtualListEnumerator )(( IEnumerable )orderedVirtualLists[i]).GetEnumerator();
                }
            }
예제 #2
0
            public bool MoveNext()
            {
                // No need to check the VirtualPageManager's version.  The sub VirtualLists' Enumerator will take care of it.
                while (m_currentEnumeratorIndex < m_orderedVirtualListEnumerators.Length)
                {
                    VirtualListEnumerator enumerator = m_orderedVirtualListEnumerators[m_currentEnumeratorIndex];

                    enumerator.MoveNext();

                    if (!enumerator.AfterEnd)
                    {
                        m_currentItem = enumerator.Current;
                        return(true);
                    }
                    else
                    {
                        // Reached the end of this enumerator.  Let's increment the currentEnumeratorIndex.
                        m_currentEnumeratorIndex++;
                    }
                }

                m_currentItem = null;
                return(false);
            }