设置TabItem的标题

时间:2018-08-15 14:07:20

标签: c# wpf

我有一个TabControl,绑定到UserControls(MyControls)列表

  <TabControl Background="{x:Null}" x:Name="MyView" ItemsSource="{Binding MyControls}" >

我想将每个选项卡项目的标题绑定到每个UserControl中的属性(标题)。我做了如下

<TabControl.ItemContainerStyle>
                 <Style TargetType="TabItem">
                    <Setter Property="Header" Value="{Binding Title}"/>                   
                </Style>
</TabControl.ItemContainerStyle>

但是,由于我重写了ItemContainerStyle,因此我丢失了该应用程序的所有默认样式。我的标签页标题看起来与应用程序中的其他标签页标题不同

有什么方法可以只绑定标题而不更改任何样式?

1 个答案:

答案 0 :(得分:2)

定义ItemTemplate

<TabControl Background="{x:Null}" x:Name="MyView" ItemsSource="{Binding MyControls}">
    <TabControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Title}" />
        </DataTemplate>
    </TabControl.ItemTemplate>
</TabControl>

MyControls不应返回IEnumerable<UserControl>。它应该返回一个IEnumerable<YourObject>,其中YourObject是具有Title属性以及任何其他属性的POCO类。然后,您应该使用DataTemplates来定义YourObject的外观。