私は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)