I want to add an extra row to Datagrid's header row that will contain textboxes (for searching).
This row should appear directly under the original header and look like regular item header.
This is my code so far:
<Window.Resources>
<Style x:Key="DataGridColumnHeaderStyle1" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid VerticalAlignment="Center" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="" HorizontalAlignment="Stretch"/>
<Grid Grid.Row="1">
<TextBox Text="" HorizontalAlignment="Stretch" BorderThickness="1" />
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<DataGrid x:Name="dataGrid" Height="157" Width="600" Margin="8,8,24,0"
VerticalAlignment="Top"
AutoGenerateColumns="False"
ColumnHeaderStyle="{DynamicResource DataGridColumnHeaderStyle1}"
ItemsSource="{Binding}" CanUserAddRows="False"
>
<DataGrid.Columns>
<DataGridTextColumn Header="Header1" Binding="{Binding Id}" Width="100" />
<DataGridTextColumn Header="Header2" Binding="{Binding Name}" Width="100"/>
<DataGridTextColumn Header="Header3" Binding="{Binding Phone}" Width="100"/>
<DataGridTextColumn Header="Header4" Binding="{Binding Address}" Width="100"/>
<DataGridTextColumn Header="Header5" Binding="{Binding Description}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
The problem with my contentTemplate that it doesn't get the "header title" that is defined in .