Yo soy muy inexperto con WPF ... sin embargo, parece que si no define un GridViewColumnHeader, entonces no se le dará uno cuando acceda a .Header.
Es decir, si se define como el GridViewColumn:
<GridViewColumn x:Name="stringColumn">
stringColumn.Header will return a string
</GridViewColumn>
Entonces llamando stringColumn.Header devolverá una cadena ... sin embargo si se define como decir:
<GridViewColumn x:Name="gridViewColumnHeaderColumn1">
<GridViewColumnHeader>
gridViewColumnHeaderColumn.Header will return a GridViewColumnHeaderColumn
</GridViewColumnHeader>
</GridViewColumn>
Luego, al comprobar gridViewColumnHeaderColumn.Header, se mostrará un GridViewColumnHeaderColumn
¿Por qué quiere acceder? – svick
Para establecer un símbolo de dirección de clasificación (flecha) en el encabezado usando AdornerLayer – Marco