1

これには簡単な解決策があるはずですが、私はそれを見つけることができません。データを含む DataGridTextColumns を持つ DataGrid があります。これはうまくいっています。セル内の文字列を取得して改行を作成しないようです。代わりに、すべてが1行にあります(文字列の長さに関係なく)。

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) で改行します。どうすればこれを達成できますか? 設定できる単純なスタイル要素が必要ですよね? 私はそれを見つけることができません。

助けていただければ幸いです、ありがとう!

4

1 に答える 1

3

設定できる単純なスタイル要素が必要ですよね? 私はそれを見つけることができません。

はい、列の 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;
于 2016-12-11T19:36:26.460 に答える