必须有一个简单的解决方案,但我找不到它。我有一个DataGrid与DataGridTextColumns包含数据。这工作正常。我似乎没有得到单元格中的String来换行,而是所有内容都在一行中(无论字符串有多长)。
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);
假设我想创建Text,它最终在textColumn3中在单元格的末尾(200宽)进行换行。我该如何实现这一目标?必须有一个可以设置的简单样式元素,对吗?我找不到它。
帮助将不胜感激,谢谢!
答案 0 :(得分:2)
必须有一个可以设置的简单样式元素,对吗?我找不到它。
是的,您可以将列的ElementStyle属性设置为以下样式以包装文本:
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
您可以使用XamlReader.Parse方法以编程方式创建Style:
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;