我工作在VB.Net w/WPF,我需要在运行时(在代码隐藏)与每个网格单元格中的文本能够包装创建一个DataGrid。我发现了很多示例,说明如何在XML中执行此操作,但我无法找到任何解释在代码隐藏中如何完成的任何操作。我试图弄清楚DataGridTemplateColumn,CellTemplate和DataTemplate如何一起工作。任何帮助,将不胜感激。如何在代码隐藏中设置DataGrid中的文本包装?
我认为这等同于我想要做的事:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock TextWrapping="Wrap" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
更新:
我已经取得了一些进展,但细胞文字环绕仍然没有工作.. 。这是我到目前为止:
Dim grid As New DataGrid
grid.AutoGenerateColumns = False
Dim dgtc As New DataGridTemplateColumn
dgtc.Header = "Test"
dgtc.Width = 200
Dim factory1 As New FrameworkElementFactory(GetType(TextBlock))
Dim b1 As New Binding("WrapDirection.Right")
factory1.SetValue(TextBlock.TextWrappingProperty, b1)
Dim dt As New DataTemplate
dt.VisualTree = factory1
dgtc.CellTemplate = dt
grid.Columns.Add(dgtc)
我认为问题是与绑定和textblock属性。像这样的东西会更有意义,但它不工作...
Dim b1 As New Binding("Wrap")
factory1.SetValue(TextBlock.TextWrapping, b1)
我发现这篇文章:什么是代码背后的datagridtemplatecolumn,以及如何使用它? http://stackoverflow.com/questions/1754608/what-is-the-code-behind-for-datagridtemplatecolumn-and-how-to-use-it不幸的是,我仍然无法理解如何让这个工作DataGrid单元格的文本块。 – zzMzz