Search code examples
wpfxamlstylestabitem

How To Wpf TabItem Style HeaderTemplate Binding?


How To do Wpf TabItem Style HeaderTemplate Binding?

Code:

<TabControl x:Name="tabCtrlMain" ItemsSource="{Binding Items}" >
        <TabControl.Resources>
            <Style TargetType="TabItem">
                <Setter Property="HeaderTemplate">
                    <Setter.Value>
                        <DataTemplate DataType="{x:Type TabItem}">
                            <TextBlock Text="{Binding FileName}"/>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </TabControl.Resources>
    </TabControl>

this code is not working when binding:

<TextBlock Text="{Binding FileName}"/>

Solution

  • Try this Instead,

    <TabControl x:Name="tabCtrlMain" ItemsSource="{Binding Items}" >
            <TabControl.Resources>
                <Style TargetType="TabItem">
                    <Setter Property="Header" Value="{Binding FileName}" />
                    <Setter Property="HeaderTemplate">
                        <Setter.Value>
                            <DataTemplate DataType="{x:Type TabItem}">
                                <Border x:Name="grid">
                                        <ContentPresenter>
                                            <ContentPresenter.Content>
                                                <TextBlock Text="{TemplateBinding Content}"/>
                                            </ContentPresenter.Content>
                                        </ContentPresenter>
                                    </Border>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </TabControl.Resources>
        </TabControl>