protected override UIElementCollection CreateUIElementCollection(FrameworkElement logicalParent)
{
// Use overriden version of the collection that does not remove children from
// the visual tree until they have finished being removed by optional animation.
_children = new MetaElementCollection(this, logicalParent);
_children.InternalIsItemsHost = IsItemsHost;
// We need to know whenever an element is added or removed, to keep element state in sync
_children.UIElementsAdded += new EventHandler<UIElementsEventArgs>(OnUIElementsAdded);
_children.UIElementsRemove += new EventHandler<UIElementsEventArgs>(OnUIElementsRemove);
return _children;
}