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.