2009-10-01 123 views

回答

5

您可以使用啓用了Textwrapping的Textblock替換單元格。 即

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

我該如何編輯單元格文本? – Marcel 2010-01-19 13:49:03

+0

文本塊是隻讀的。你應該使用TextBox。 – Slampen 2010-05-31 12:50:37

8

如果您使用的是DataGridTextColumn,你需要定義樣式的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可以在以下http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtextcolumn(v=vs.95).aspx

1

發現如果你的DataGridTextColumn正在創建的代碼背後,你可以這樣設置樣式和設置器:

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

這將導致_dataGridTextColumn中的文本會像在TextBlock中一樣包裝。