标签控件的标签项标题在wpf中

时间:2013-08-29 09:51:39

标签: wpf user-controls observablecollection tabcontrol

我在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}" />

1 个答案:

答案 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会自动应用该样式。