I have a custom DataGrid (I extended it and included a DependencyProperty Label), I am using the DataGrid and wanted to add Label control using ControlTemplate and ContentPresenter. In the ContentTemplate the DependencyProperty Label works and displays as it should, but the ContentPresenter doesn't work or display any of the DataGrid control at all.  I tried it with ItemsPresenter and it shows the rows, I was wondering if there is a way to display the DataGrid using ContentPresenter in this manner? what's the right approach to doing this?
MyUserControl.xaml
<UserControl
    x:Class="MyNamespace.UI.MyUserControl"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:e="clr-namespace:MyNamespace.UI"
     mc:Ignorable="d" 
     d:DesignHeight="350" d:DesignWidth="400">
    <UserControl.Resources>
        <Style TargetType="{x:Type e:DataGrid}"  BasedOn="{StaticResource {x:Type DataGrid}}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type e:DataGrid}">
                        <StackPanel>
                            <Label Content="{Binding Label, RelativeSource={RelativeSource TemplatedParent}}" ContentStringFormat="{}{0}: " />
                            <ContentPresenter Margin="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                        </StackPanel>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>
    <WrapPanel  x:Name="LayoutRoot" Width="900" HorizontalAlignment="Stretch" Margin="12" VerticalAlignment="Stretch">
        <e:DataGrid Label="My Label 1"     ItemsSource="{Binding Source={StaticResource MySource1}}"/>
        <e:DataGrid Label="My Label 2"     ItemsSource="{Binding Source={StaticResource MySource2}}"/>
    </WrapPanel>
</UserControl>
DataGrid.cs
namespace MyNamespace.UI
{
    public class DataGrid : System.Windows.Controls.DataGrid
    {
        public string Label
        {
            get { return (string)GetValue(LabelProperty); }
            set { SetValue(LabelProperty, value); }
        }
        public static readonly DependencyProperty LabelProperty =
            DependencyProperty.Register("Label", typeof(string), typeof(DataGrid), new UIPropertyMetadata(""));
        public DataGrid()
        {}
    }
}