2009-10-01 19 views

Respuesta

5

Puede reemplazar la celda con un Textblock con Envoltura de texto habilitada. es decir

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

¿Cómo puedo editar el texto de la celda? – Marcel

+0

Textblock es de solo lectura. deberías usar TextBox. – Slampen

8

Si está utilizando un DataGridTextColumn, es necesario definir el estilo para el 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 completa se puede encontrar en la siguiente http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtextcolumn(v=vs.95).aspx

1

Si su DataGridTextColumn se está creando en el código detrás de usted puede establecer el estilo y setters de esta manera:

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

Esto hará que el texto dentro de _dataGridTextColumn se ajuste como lo haría dentro de un TextBlock.

Cuestiones relacionadas