Кажется, есть несколько проблем с вашим кодом, мне не удалось заставить его работать, но это то, что я заметил.
Вы, вероятно, хотите создать свойство зависимости в вашем элементе управления pivotчто вы можете связать шаблон в Generic.xaml с вашим PivotHeaderItemsControl.
public ObservableCollection<string> Headers
{
get { return (ObservableCollection<string>)GetValue(HeadersProperty); }
set { SetValue(HeadersProperty, value); }
}
// Using a DependencyProperty as the backing store for Headers. This enables animation, styling, binding, etc...
public static readonly DependencyProperty HeadersProperty =
DependencyProperty.Register("Headers", typeof(ObservableCollection<string>), typeof(Pivot), new UIPropertyMetadata(null));
Кроме того, ваши шаблоны для элементов ItemsControls кажутся неправильными, вы завернули ItemsPresenter в сетки, но это будет означать каждый элементItemsSource будет располагаться друг над другом.Если вы поместите ItemsPresenter в StackPanel или что-то подобное, все элементы должны появиться.
<StackPanel>
<ItemsPresenter x:Name="ItemsPresenter"
Grid.Row="1"
Margin="{TemplateBinding Padding}"/>
</StackPanel>
Если вы обновите свой образец, я могу взглянуть еще раз.