Laden...

WPF DataGridColumnHeader Template -> Wie auf Controls zugreiffen?

Erstellt von CyberHunter vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.471 Views
C
CyberHunter Themenstarter:in
131 Beiträge seit 2007
vor 12 Jahren
WPF DataGridColumnHeader Template -> Wie auf Controls zugreiffen?

Hallo zusammen,

ich habe ein WPF Datagrid für welches ich ein ContentTemplate in der App.xaml
definiert habe, dieses sieht vereinfacht so aus:


 <Style TargetType="DataGridColumnHeader">
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <StackPanel HorizontalAlignment="Stretch" Orientation="Vertical">
                            <TextBox x:Name="txtHeader" />
                            <TextBlock Text="{Binding}" />
                        </StackPanel>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>

Nun möchte ich auf das TextChange Event dieser TextBox reagieren.
Kann mir jemand einen Tip geben wie ich auf diese TextBox im CodeBehind zugreiffen kann?
Wenn ich von einer Column im Datagrid das HeaderTemplate aufrufe ist dieses immer null.

Danke für eure Hilfe
CyberHunter

T
8 Beiträge seit 2007
vor 12 Jahren

Hallo CyberHunter,

Wahrscheinlich ist das Template noch nicht geladen. Versuch mal vor dem Zugriff auf das Template

dataGridColumn.ApplyTemplate();

aufzurufen.

Dann die TextBox über FindName ermitteln:

var textBox = dataGridColumn.Template.FindName("txtHeader", dataGridColumn) as TextBox; 

Gruß, toolsche