public void RefreshDisplay()
        {
            var entries = m_entries;

            m_pageHandler.ListCount = entries.Count;

            for (int i = 0; i < m_displayedEntries.Length; i++)
            {
                var entry = m_displayedEntries[i];
                if (entry != null)
                {
                    entry.Disable();
                }
                else
                {
                    break;
                }
            }

            if (entries.Count < 1)
            {
                return;
            }

            foreach (var itemIndex in m_pageHandler)
            {
                if (itemIndex >= entries.Count)
                {
                    break;
                }

                CacheEnumerated entry = entries[itemIndex];
                m_displayedEntries[itemIndex - m_pageHandler.StartIndex] = entry;
                entry.Enable();
            }

            //UpdateSubcontentHeight();
        }
        public void GetCacheEntries()
        {
            if (m_entries.Any())
            {
                // maybe improve this, probably could be more efficient i guess

                foreach (var entry in m_entries)
                {
                    entry.Destroy();
                }

                m_entries.Clear();
            }

            if (RefIList != null)
            {
                int index = 0;
                foreach (var entry in RefIList)
                {
                    object entryToUse = entry;
                    if (entryToUse == null)
                    {
                        entryToUse = At.TryCreateDefault(this.m_baseEntryType);
                    }

                    var cache = new CacheEnumerated(index, this, RefIList, this.m_listContent);
                    cache.CreateIValue(entryToUse, m_baseEntryType);
                    m_entries.Add(cache);

                    cache.Disable();

                    index++;
                }
            }

            RefreshDisplay();
        }