protected override void RemoveItem(int index)
        {
            DetailConfiguration detailConfig = this[index];

            detailConfig.DetachFromContainingCollection();

            DetailVisibilityChangedEventManager.RemoveListener(detailConfig, this);

            base.RemoveItem(index);
        }
        protected override void ClearItems()
        {
            foreach (DetailConfiguration detailConfig in this)
            {
                detailConfig.DetachFromContainingCollection();

                DetailVisibilityChangedEventManager.RemoveListener(detailConfig, this);
            }

            base.ClearItems();
        }