にPivot Control
と 3 つをPivotItems
追加しましたBlend
。それぞれPivotItem
にViewModel
そのままがありDataContext
ます。それぞれViewModel
に文字列プロパティがありますTitle
。Header Template
を編集してを作成し、そのプロパティを にTextBlock
バインドしたいのですが、何らかの理由で機能しません。のがnull だからだと思いますが、特定の から継承されると思いました。これはヘッダー テンプレートのコードです。Text
Title
DataContext
Header Template
PivotItem
xaml
<DataTemplate x:Key="HeaderTemplate">
<Grid Height="47" Width="354">
<TextBlock Margin="8,0,64,8" TextWrapping="Wrap" Text="{Binding Title}" d:LayoutOverrides="Width" FontSize="24" Foreground="Red"/>
</Grid>
</DataTemplate>
<controls:Pivot TitleTemplate="{StaticResource TitleTemplate}" HeaderTemplate="{StaticResource HeaderTemplate}">
<!--Pivot item one-->
<controls:PivotItem DataContext="{Binding Home, Mode=OneWay}">
<Grid>
<ListBox x:Name="listBox" ItemsPanel="{StaticResource HomeItemsPanel}" ItemTemplate="{StaticResource HomeItemTemplate}" ItemsSource="{Binding Tiles}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding OnSelectionChanged}" CommandParameter="{Binding SelectedIndex, ElementName=listBox}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ListBox>
</Grid>
</controls:PivotItem>
<controls:PivotItem Margin="0,8,0,1">
<Grid/>
</controls:PivotItem>
<!--Pivot item two-->
<controls:PivotItem DataContext="{Binding More, Mode=OneWay}">
<Grid/>
</controls:PivotItem>
</controls:Pivot>
もっと複雑なものを作成したいのですHeader Template
が、今のところ、TextBlock 以外のものに進む前に、それをバインドできるかどうかをテストしています。List
にofViewModels
を使用できることはわかっていますがPivotControl.ItemSource
、その場合は a などを使用する必要がDataTemplateSelector
あり、それは望ましくありません。
だから私の質問はこれだと思います.HeaderTemplateがそれに応じたDataContextを継承するようにするにはどうすればよいPivotItem
ですか? ありがとうございました。