2010-07-12 1 views
2

Je suis nouveau à wpf et j'ai du mal à ajouter des info-bulles à mon en-tête datagrid à partir de code-behind.Info-bulle dans Datagrid, ajouté à partir de code-behind

J'ai besoin d'utiliser autogenenerecolumns sur la grille de données qui exclut l'édition de xaml. Tous les exemples que j'ai pu trouver impliqués som xaml édition.

J'ai essayé d'ajouter le DataGridTextColumn sans succédant

private void dataGrid1_AutoGeneratedColumns(object sender, EventArgs e) 
    { 
     foreach (DataGridTextColumn item in dataGrid1.Columns) 
     { 
      ToolTip tooltip = new ToolTip(); 
      tooltip.Content = "Test"; 
      ToolTipService.SetToolTip(item, tooltip); 
     } 
    } 

Je peux voir que la variable d'info-bulle est situé dans le Visualiseur WPF mais rien ne montre dans le DataGrid.

Aide!

+0

Peut-être la réponse acceptée à cette question pourrait aider: http://stackoverflow.com/questions/1735573/unable-to-set-datagridcolumns-tooltip – andyp

+0

I couldnt comprendre comment changer la valeur de l'info-bulle avec cette approche. – Kristoffer

Répondre

3

Je fini par utiliser cette approche:

private void dataGrid1_AutoGeneratingColumn(object sender,DataGridAutoGeneratingColumnEventArgs e) 
    { 
      Style style = new Style(typeof(DataGridColumnHeader)); 
      Trigger trigger = new Trigger(); 
      trigger.Property = IsMouseOverProperty; 
      trigger.Value = true; 
      Setter setter = new Setter(); 
      setter.Property = ToolTipProperty; 
      setter.Value = "Your tooltip"; 
      trigger.Setters.Add(setter); 
      style.Triggers.Add(trigger); 
      e.Column.HeaderStyle = style; 

    } 
Questions connexes