WPF: TabControl и DataTemplates

Я просто хочу понять следующий сценарий. Если я реализую , привязанный к ObservableCollection

No Data Templates

, когда у меня нет никаких DataTemplate s, текст WpfApplication1.TabViewModel отображается в заголовке вкладки и содержимом. Хорошо, я понимаю эту часть.

Всего ItemTemplate

Когда у меня только

<TabControl.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding TabTitle}" />
        </StackPanel>
    </DataTemplate>
</TabControl.ItemTemplate>

Тогда мой заголовок вкладки заполняется. Содержимое вкладки по-прежнему WpfApplication1.TabViewModel .

Просто DataTemplate

Когда у меня есть только что ниже в моем

<DataTemplate DataType="{x:Type local:TabViewModel}">
    <TextBox Text="{Binding Text}" />
</DataTemplate>

Эти шаблоны заполняют заголовок вкладки.

Оба

Когда у меня есть оба, ItemTemplate заполняет заголовок вкладки, а DataTemplate заполняет содержимое вкладки. К чему вся эта разница. ItemTemplate & DataTemplate заполняет заголовок вкладки, если другой отсутствует. Если присутствуют оба, ItemTemplate заполняет заголовок, а DataTemplate заполняет содержимое.

Хотя у меня кое-что работает, я очень запутался. Не следует Что-то вроде быть тем, что заполняет заголовок, а заполняет содержимое?

32
задан Jiew Meng 30 October 2010 в 09:09
поделиться