我只是想了解以下情况。 我正在实现一个绑定到ObservableCollection<TabViewModel>
的<TabControl>
。
没有数据模板
当我没有任何DataTemplate
时,在选项卡标题和内容中出现文本WpfApplication1.TabViewModel
。好的,我理解这部分。
只有
当我只有ItemTemplate
时,头部显示的是创建TabViewModel
时传递给构造函数的字符串参数的值,并且内容是空的。我不明白为什么会发生这种情况。
<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
都会填充选项卡头部。如果两者都存在,则ItemTemplate
填充选项卡头部,而DataTemplate
填充内容。
虽然我已经让事情正常运作,但我还是很困惑。难道像<TabControl.HeaderTemplate>
这样的东西不应该填充标题,而<TabControl.ItemTemplate>
则填充内容吗?