Esto se puede hacer utilizando DataGridTextColumn & DataGridTextColumn.HeaderStyle. En la etiqueta del estilo del encabezado, use el ToolTipService y vincule el contenido a los valores dinámicos generados. Aquí hay un código de ejemplo para este ...
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="First Name" Binding="{Binding FName}" >
<data:DataGridTextColumn.HeaderStyle>
<Style TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<ContentControl Content="{Binding}">
<ToolTipService.ToolTip>
<ToolTip Content="Tooltip First" />
</ToolTipService.ToolTip>
</ContentControl>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</data:DataGridTextColumn.HeaderStyle>
</data:DataGridTextColumn>
<data:DataGridTextColumn Header="Last Name" Binding="{Binding LName}">
<data:DataGridTextColumn.HeaderStyle>
<Style TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<ContentControl Content="{Binding}">
<ToolTipService.ToolTip>
<ToolTip Content="Tooltip Second"></ToolTip>
</ToolTipService.ToolTip>
</ContentControl>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</data:DataGridTextColumn.HeaderStyle>
</data:DataGridTextColumn>
<data:DataGridTextColumn Header="City" Binding="{Binding City}">
<data:DataGridTextColumn.HeaderStyle>
<Style TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<ContentControl Content="{Binding}">
<ToolTipService.ToolTip>
<ToolTip Content="Tooltip Third"></ToolTip>
</ToolTipService.ToolTip>
</ContentControl>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</data:DataGridTextColumn.HeaderStyle>
</data:DataGridTextColumn>
</data:DataGrid.Columns>
</data:DataGrid>
</Grid>
donde Custdetails .. es algo como esto ..
class Customer
{
public string LName { set; get; }
public string FName { set; get; }
public string City { set; get; }
}
DataBinding ...
List<Customer> customers = new List<Customer>
{
new Customer { LName="Alan", FName="Ameen", City="New York" },
new Customer { LName="Forgeard", FName="Steven", City="Mumbai" },
new Customer { LName="Angur", FName="Paul", City="São Paulo" }
};
dgCustDetails.ItemsSource = customers;
Este mostraría la información sobre herramientas del encabezado ... Para hacerlo dinámico ... Reemplazar el contenido de la información sobre herramientas con Bindin g & el valor deseado ...
Eso me ayudó, pero parece estar sobreescribiendo el estilo existente para Column Headers. ¿Cómo puedo obtener el estilo predeterminado para un DataGridColumnHeader y hacer que mi estilo se base en él? – Marlon
En realidad, ya tengo algunas definiciones de encabezado en la plantilla DataGrid, cuando aplico el estilo al encabezado parece que ignora todas las propiedades de estilo definidas por la grilla. – Marlon
¿Ha intentado establecer la propiedad BasedOn del estilo a su estilo personalizado? P.ej. '