2009-10-01 10 views

Répondre

5

Vous pouvez remplacer la cellule par un bloc de texte avec Textwrapping activé. -à-dire

<dg:DataGridTemplateColumn Header="Description" Width="*"> 
    <dg:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Description}" TextWrapping="WrapWithOverflow"/>          
     </DataTemplate> 
    </dg:DataGridTemplateColumn.CellTemplate> 
</dg:DataGridTemplateColumn> 
+1

Comment puis-je modifier le texte de la cellule? – Marcel

+0

Textblock est en lecture seule. vous devriez utiliser TextBox. – Slampen

8

Si vous utilisez un DataGridTextColumn, vous devez définir le style de la DataGridTextColumn.ElementStyle

<dg:DataGridTextColumn Header="SomeLongText" Binding="{Binding MyText}"> 
    <dg:DataGridTextColumn.ElementStyle> 
    <Style TargetType="TextBlock"> 
     <Setter Property="TextWrapping" Value="Wrap"/> 
    </Style> 
    </dg:DataGridTextColumn.ElementStyle> 
</dg:DataGridTextColumn> 

explination complète se trouve à la http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtextcolumn(v=vs.95).aspx suivante

1

Si votre DataGridTextColumn est créé dans le code derrière vous pouvez définir le style et les setters de cette façon:

 _dataGridTextColumn.MaxWidth = 550; 
     _dataGridTextColumn.ElementStyle = new System.Windows.Style(typeof(TextBlock)); 
     _dataGridTextColumn.ElementStyle.Setters.Add(new Setter(TextBlock.TextWrappingProperty, TextWrapping.Wrap)); 

Cela entraînera l'enroulement du texte à l'intérieur de _dataGridTextColumn comme dans un TextBlock.

Questions connexes