C# DataGridTextColumn 换行符

C# DataGridTextColumn line break

一定有一个简单的解决方案,但我就是找不到。我有一个带有 DataGridTextColumns 的 DataGrid,其中包含数据。这工作正常。我只是似乎没有让单元格中的字符串换行,而是所有内容都在一行中(无论字符串有多长)。

dataGrid.IsReadOnly = true;
dataGrid.AutoGenerateColumns = false;
dataGrid.ItemsSource = ConvertListIntoPlantViewModel(lList);

DataGridTextColumn textColumn1 = new DataGridTextColumn();
DataGridTextColumn textColumn2 = new DataGridTextColumn();
DataGridTextColumn textColumn3 = new DataGridTextColumn();
textColumn3.MaxWidth = 200;

textColumn1.Header = "Name";
textColumn1.Binding = new Binding("Name");
textColumn2.Header = "Type";
textColumn2.Binding = new Binding("Type");
textColumn3.Header = "Info";
textColumn3.Binding = new Binding("Information");

dataGrid.Columns.Add(textColumn1);
dataGrid.Columns.Add(textColumn2);
dataGrid.Columns.Add(textColumn3);

假设我想制作文本,它最终出现在 textColumn3 中,以便在单元格末尾(200 宽)换行。我如何实现这一目标?肯定有一个简单的Style Element可以设置吧?我就是找不到。

不胜感激,谢谢!

There must be a simple Style Element that can be set, right? I just can't find it.

是的,您可以将列的 ElementStyle 属性 设置为以下样式以使文本换行:

<Style TargetType="TextBlock">
    <Setter Property="TextWrapping" Value="Wrap" />
</Style>

您可以使用 XamlReader.Parse 方法以编程方式创建样式:

string xaml = "<Style xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" TargetType=\"TextBlock\"><Setter Property=\"TextWrapping\" Value=\"Wrap\"/></Style>";
Style style = System.Windows.Markup.XamlReader.Parse(xaml) as Style;

DataGridTextColumn textColumn1 = new DataGridTextColumn();
textColumn1.ElementStyle = style;