Я просто хочу понять следующий сценарий. Где я реализую <TabControl>
, связанный с ObservableCollection<TabViewModel>
Нет шаблонов данных
Когда у меня нет DataTemplate
s, текст WpfApplication1.TabViewModel
появляется в заголовке и контенте. Хорошо, я понимаю эту часть.
Просто ItemTemplate
Когда у меня только
<TabControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding TabTitle}" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
Затем заголовок моей вкладки заполняется. Содержимое вкладки все еще WpfApplication1.TabViewModel
.
Просто DataTemplate
Когда у меня есть только что ниже в <Window.Resources>
<DataTemplate DataType="{x:Type local:TabViewModel}">
<TextBox Text="{Binding Text}" />
</DataTemplate>
Эти шаблоны заполняют заголовок вкладки.
И
Когда у меня есть оба, ItemTemplate
заполняет заголовок вкладки, а DataTemplate
заполняет содержимое вкладки. Почему все это различие. ItemTemplate
и DataTemplate
заполняет заголовок вкладки, если другой нет. Если оба присутствуют, ItemTemplate
заполняет заголовок, а DataTemplate
заполняет содержимое.
Хотя у меня все работает, я очень смущен. Не должно ли что-то вроде <TabControl.HeaderTemplate>
заполнять заголовок и <TabControl.ItemTemplate>
заполнять контент?