【问题标题】:How do I set text wrapping inside a DataGrid in the code-behind?如何在代码隐藏中的 DataGrid 内设置文本换行?
【发布时间】:2012-06-05 00:30:05
【问题描述】:

我在带有 WPF 的 VB.Net 中工作,我需要在运行时(在代码隐藏中)创建一个 DataGrid,每个网格单元格中的文本都可以换行。我找到了很多示例来说明如何在 XML 中执行此操作,但我找不到任何解释如何在代码隐藏中完成此操作的内容。我一直试图弄清楚 DataGridTemplateColumn、CellTemplate 和 DataTemplate 是如何一起工作的。对此的任何帮助将不胜感激。

我认为这相当于我正在尝试做的事情:

<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背后的代码是什么,如何使用? stackoverflow.com/questions/1754608/… 不幸的是,我仍然无法理解如何让它与 DataGrid 单元格的文本块一起使用。

标签: wpf vb.net datagrid wpfdatagrid controltemplate


【解决方案1】:

所以我终于能够找到我正在寻找的东西:http://social.msdn.microsoft.com/Forums/br/wpf/thread/bf75f61a-6247-4964-95be-7ea6f0fa0998

使用它作为参考,我终于能够让一些代码正常工作:

Dim grid As New DataGrid
grid.AutoGenerateColumns = False

Dim dgtextcol As New DataGridTextColumn
dgtextcol.Width = 200

dgtextcol.Header = "Test"

Dim b1 = New Binding("Message")
b1.Mode = BindingMode.OneWay

dgtextcol.Binding = b1

Dim textStyle = New Style(GetType(TextBlock))
textStyle.Setters.Add(New Setter(TextBlock.TextWrappingProperty, TextWrapping.Wrap))

dgtextcol.ElementStyle = textStyle

grid.Columns.Add(dgtextcol)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 2011-12-20
    • 2020-02-08
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多