我在WPF窗口中有一个制表符控件。 TabControl的Item源在其视图模型中绑定到ObservableCollection<UserControl>
。
那么如何设置TabControl的每个TabItem的标签页呢?
由于我的标签项类型属于我的UserControl
,而不是TabItem
我无法设置为:
((TabItem)Tabcontrol.Item[0]).Header="Something"
有人有解决方案吗?
我的TabControl
是:
<TabControl Name="TabControl" Grid.Row="1"
ItemsSource="{Binding TabCollection}"
SelectedIndex="{Binding CurrentIndex}" />
答案 0 :(得分:3)
您需要为每个TabItem设置一个样式,该样式将在用户控件上设置绑定到名为Header
的属性。试试这个:
<Style TargetType="{x:Type TabItem}">
<Setter Property="Header" Value="{Binding Header}"/>
</Style>
您添加到tabitem的每个控件都需要一个属性调用Header。 不必在接口上声明绑定工作。
以下是使用标签控件的完整示例。
<TabControl Name="TabControl" Grid.Row="1" ItemsSource="{Binding TabCollection}" SelectedIndex="{Binding CurrentIndex}" >
<TabControl.Resources>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Header" Value="{Binding Title}"/>
</Style>
</TabControl.Resources>
</TabControl>
WPF会自动应用该样式。