2009-10-01 11 views

Odpowiedz

5

Komórkę tekstu można zastąpić blokadą tekstu z włączoną funkcją Zawijanie tekstu. tj

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

Jak mogę edytować tekst komórki? – Marcel

+0

Blokowanie tekstu jest tylko do odczytu. powinieneś użyć TextBox. – Slampen

8

Jeśli używasz DataGridTextColumn, trzeba zdefiniować styl dla 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> 

Pełna explination można znaleźć pod następującym http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtextcolumn(v=vs.95).aspx

1

Jeśli DataGridTextColumn jest tworzony w kodzie za Tobą można ustawić styl i setery w ten sposób:

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

Spowoduje to, że tekst wewnątrz kolumny _dataGridTextColumn będzie zawijany tak, jak wewnątrz bloku TextBlock.