Taka zagwozdka początkującego programisty .NET:
chciałbym utworzyć niestandardowy nagłówek w DataGrid, ale nie wiem, jak połączyć niektóre właściwości z szablonu DataGridColumnHeader (BorderBrush, BorderThickness z Themes:DataGridHeaderBorder) z właściwościami na DataGridTextColumn - tam takich właściwości nie ma.
plik xaml:
<DataGrid x:Name="orderDataGrid" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn x:Name="orderIdColumn" Binding="{Binding OrderId}" Header="Nr zam."/>
<DataGridTextColumn x:Name="descriptionColumn" Binding="{Binding Description}" Header="Opis"/>
<DataGridTextColumn x:Name="custIdColumn" Binding="{Binding CustId}" Header="Nr klienta"/>
<DataGridTextColumn x:Name="firstNameColumn" Binding="{Binding Customer.FirstName}" Header="Imię"/>
<DataGridTextColumn x:Name="LastNameColumn" Binding="{Binding Customer.LastName}" Header="Nazwisko"/>
</DataGrid.Columns>
</DataGrid>
szablon DataGridColumnHeader:
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid>
<Themes:DataGridHeaderBorder BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" IsClickable="{TemplateBinding CanUserSort}" IsPressed="{TemplateBinding IsPressed}" IsHovered="{TemplateBinding IsMouseOver}" Padding="{TemplateBinding Padding}" SortDirection="{TemplateBinding SortDirection}" SeparatorBrush="{TemplateBinding SeparatorBrush}" SeparatorVisibility="{TemplateBinding SeparatorVisibility}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Themes:DataGridHeaderBorder>
<Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource ColumnHeaderGripperStyle}"/>
<Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource ColumnHeaderGripperStyle}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>