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;
一定有一个简单的解决方案,但我就是找不到。我有一个带有 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;