Je veux juste comprendre le scénario suivant. Là où je suis un <TabControl>
lié la mise en œuvre à un ObservableCollection<TabViewModel>
WPF: TabControl & DataTemplates
Aucun modèle de données
Quand je n'ai pas DataTemplate
s, le texte WpfApplication1.TabViewModel
apparaît dans l'onglet En-tête et le contenu. Ok je comprends cette partie.
Juste ItemTemplate
Lorsque je viens de
<TabControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding TabTitle}" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
Ensuite, mon en-tête de l'onglet est rempli. Le contenu de l'onglet est toujours WpfApplication1.TabViewModel
.
Juste DataTemplate
Quand j'ai juste le bas dans mon <Window.Resources>
<DataTemplate DataType="{x:Type local:TabViewModel}">
<TextBox Text="{Binding Text}" />
</DataTemplate>
que les modèles remplit l'en-tête de l'onglet.
deux
Quand j'ai à la fois, la ItemTemplate
remplit l'en-tête Tab tandis que le DataTemplate
remplit le contenu de l'onglet. Pourquoi toute cette différence. ItemTemplate
& DataTemplate
remplit l'en-tête de l'onglet si l'autre n'est pas présent. Si les deux sont présents, ItemTemplate
remplit l'en-tête tandis que DataTemplate
remplit le contenu.
Bien que j'ai des choses qui fonctionnent, je suis assez confus. Ne devrait pas quelque chose comme <TabControl.HeaderTemplate>
être ce qui remplit l'en-tête et <TabControl.ItemTemplate>
remplir le contenu?
Si je veux la zone de liste avec le contenu et la source de l'élément de contrôle de tabulation aura la liste d'éléments pour la zone de liste .. Que puis-je faire pour cela? La boîte de liste a également le modèle de données avec lui-même – Programmer
"Tout d'abord, il y a deux modèles impliqués ici ..." Argh! On pourrait penser que la façon dont vous spécifiez un TabItem en dehors d'un DataTemplate fonctionne de la même manière dans une propriété TabControl ItemTemplate, puisque ListView et al. travailler de cette façon. Merci! – user1454265