Laden...

[erledigt] Binding TabControl mit HeaderTemplate

Erstellt von mvollmer vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.454 Views
M
mvollmer Themenstarter:in
61 Beiträge seit 2011
vor 12 Jahren
[erledigt] Binding TabControl mit HeaderTemplate

Huhu,

ich stehe grade vor einem Problem. Ich würde gerne ein TabControl erstellen und ein DataTemplate auf den Header des TabItems setzten.

Mein Versuch ist folgender:

In den Grid Ressourcen:

 
<Style x:Name="TabHeaderStyle" TargetType="sdk:TabItem">
    <Setter Property="HeaderTemplate">
        <Setter.Value>
            <DataTemplate>
                <TextBlock Text="{Binding Path=Header}" Style="{StaticResource HeaderStyle}"></TextBlock>
            </DataTemplate>
       </Setter.Value>
   </Setter>
</Style>


<sdk:TabControl x:Name="TabControl" Grid.Row="0" Grid.Column="0" DataContext="{Binding }">
    <sdk:TabItem x:Name="MainTab" Header="Hauptfunktionen" IsSelected="True" Style="{StaticResource TabHeaderStyle}">
        <StackPanel>
            <!--Some Content --> 
        </StackPanel>
   </sdk:TabItem>
   <!-- Weitere sdK:TabItem -->
   <!-- Weitere sdK:TabItem -->
   <!-- Weitere sdK:TabItem -->
   <!-- Weitere sdK:TabItem -->
</sdk:TabControl>


Das Problem ist jetzt, das im Tab der Header Text nicht angezeigt wird. Wenn ich allerdings oben im DataTemplate beim Text Binding den ElementName=MainTab hinzufüge funktioniert es, doch das trifft dann natürlich nicht auf die anderen TabItems zu.

Ich habe gelesen, das der DataContext gesetzt sein muss, damit das Binding funktioniert. Leider klappt es so nicht.

Könnte mir jemand einen Tipp geben 😉 ?

Danke schonmal

3.430 Beiträge seit 2007
vor 12 Jahren

Hallo,

versuch mal anstatt dem normalen Binding ein TemplateBinding zu verwenden (also nur Binding mit TemplateBindig ersetzen).

Gruß
Michael

M
mvollmer Themenstarter:in
61 Beiträge seit 2011
vor 12 Jahren

Hallo michlG,

leider hat das keine Änderung verursacht und das Problem besteht immer noch.

Es sieht so aus als ob der Textblock Style übernommen wird, nur der Text nicht.

EDIT: FEHLER GEFUNDEN!

Es muss einfach nur

<TextBlock Text="{Binding }" Style="{StaticResource HeaderStyle}"></TextBlock>

sein -_-

Danke für deine Mühe 😉