ItemsPanelTemplate in XAML ignores [ContentProperty] attribute
===

I have a custom Panel where I declared a custom property to hold the content (I don't want to use Children for the content):

    [ContentProperty(Name = "PanelContent")]
    public class CustomPanel : Panel
    {
        public static readonly DependencyProperty PanelContentProperty =
           DependencyProperty.Register("PanelContent", 
           typeof(Collection<UIElement>), typeof(CustomPanel), 
           new PropertyMetadata(new Collection<UIElement>(), null));

        public Collection<UIElement> PanelContent
        {
            get
            {
                return (Collection<UIElement>)GetValue(PanelContentProperty);
            }
        }
    }

This works perfectly when used like this:

    <CustomPanel>
       <TextBlock>A</TextBlock>
       <TextBlock>B</TextBlock>
    </CustomPanel>

But when I want to use the panel as an ItemsPanelTemplate inside ItemsControl, the  ContentProperty attribute is ignored and adds everything to the **Children** collection, not the **PanelContent** collection:

    <ItemsControl ItemTemplate="{StaticResource ReviewTemplate}" ItemsSource="{Binding Reviews}">
       <ItemsControl.ItemsPanel>
          <ItemsPanelTemplate>
             <CustomPanel></CustomPanel>
          </ItemsPanelTemplate>
       </ItemsControl.ItemsPanel>
    </ItemsControl>

This is not how it should work. According to the [documentation][1]:

*An ItemsPanelTemplate object element should contain exactly one FrameworkElement-derived class that serves as the root element for items. In most cases this is a Panel-derived class. The expanded template serves as the parent for the realized items and there generally is more than one item. Therefore the XAML content property of the intended root element of an ItemsPanelTemplate should support a collection, as Panel.Children does.*


  [1]: http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.itemspaneltemplate