TabControl.ItemTemplate: Setzen Sie TabItem.Header.Text auf eine Mehrfachbindung mit StringFormat

Wie setze ich den TabItem.Header auf Bindungen, die aus wenigen Feldern stammen, wobei jede Bindung in einer anderen Größe angezeigt wird, und zwar anstelle des ursprünglichen Kopfzeilentexts; ohne den Standardstil und das Standardverhalten der Kopfzeile zu überschreiben - ich brauche nur den Text.

Ich habe versucht, die Vorlage festzulegen, aber dann wird ein Rechteck erstellt, das die inneren Steuerelemente enthält. Dieses Rechteck reagiert nicht auf Benutzer-Klicks und hat auch den Steuerungsstil. Ich möchte, dass diese Steuerelemente unsichtbar sind. Nur der Text sollte sichtbar sein .

Ich habe Folgendes versucht:

<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>

Aber es zeigt nichts.

Ich habe auch versucht, das HeaderTemplate auf ein DataTemplate zu setzen, aber das DataTemplate überschreibt den TabItem-Stil. Wenn ich auf den Text klicke, wird der angeklickte Tab nicht angezeigt. Außerdem sehen die nicht ausgewählten Tabs sehr lustig aus Das Rechteck des Textes schwebt, während ich möchte, dass es transparent ist.

Also, um meine Frage zusammenzufassenMöchte ich TabItem.Header.Text zu einem MultiBinding mit StringFormat festlegen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage