TabControl.ItemTemplate: defina TabItem.Header.Text para um MultiBinding com StringFormat

Como faço para definir o TabItem.Header para ligações retiradas de alguns campos, cada ligação mostrada em um tamanho diferente, tudo no lugar do texto do cabeçalho original; sem substituir o estilo e comportamento padrão do cabeçalho - eu só preciso do texto.

Eu tentei definir seu modelo, mas, em seguida, ele cria um retângulo que contém os controles internos, e esse retângulo não é responsivo para cliques do usuário e também tem o estilo de controle, eu quero que esses controles sejam invisíveis, apenas seu texto deve ser visível .

Eu tentei o seguinte:

<TabControl ItemsSource="{Binding}">
    <TabControl.ItemTemplate>
         <DataTemplate>
             <TabItem>
                 <TabItem.Header>
                     <MultiBinding StringFormat="{}{0}-{1}">
                         <Binding Path="Title"/>
                         <Binding Path="Category.Title"/>
                     </MultiBinding>
                 </TabItem.Header>
                 <TabItem.Content>
                     <TextBlock>
                         Here is what is gonna be in the TabItem - not header
                     </TextBlock>
                 </TabItem.Content>
             </TabItem>
         </DataTemplate>
    </TabControl.ItemTemplate>
</TabControl>

Mas isso não mostra nada.

Eu também tentei definir o HeaderTemplate para um DataTemplate, mas o que acontece é que o DataTemplate substitui o estilo TabItem e quando eu clico no texto ele não vai para a aba clicada, além disso, as abas não selecionadas parecem muito engraçadas, eu vejo o retângulo do texto flutuando, enquanto eu quero que seja transparente.

Então, para resumir minha pergunta, Eu quero definir TabItem.Header.Text para um MultiBinding com StringFormat.

questionAnswers(1)

yourAnswerToTheQuestion