public override void RevealItems(int[] itemIDs)
        {
            // Optimization: Only spend time on revealing item if it is part of the Hierarchy
            HashSet <int> validItemIDs = new HashSet <int>();

            foreach (var itemID in itemIDs)
            {
                if (IsValidHierarchyInstanceID(itemID))
                {
                    validItemIDs.Add(itemID);
                }
            }

            // Get existing expanded in hashset
            HashSet <int> expandedSet = new HashSet <int>(expandedIDs);
            int           orgSize     = expandedSet.Count;

            IHierarchyProperty propertyIterator = CreateHierarchyProperty();

            int[] ancestors = propertyIterator.FindAllAncestors(validItemIDs.ToArray());

            // Add all parents above id
            foreach (var itemID in ancestors)
            {
                expandedSet.Add(itemID);
            }

            if (orgSize != expandedSet.Count)
            {
                // Bulk set expanded ids (is sorted in SetExpandedIDs)
                SetExpandedIDs(expandedSet.ToArray());

                // Refresh immediately if any Item was expanded
                if (m_NeedRefreshRows)
                {
                    FetchData();
                }
            }
        }