2016-12-11 25 views
0

これには単純な解決策が必要ですが、見つからないだけです。私は、データを含むDataGridTextColumnsを持つDataGridを持っています。これはうまくいきます。私はちょうどラインブレイクを作るために、セルの中のStringを取得しないように見えます。代わりに、すべてが1行にあります(文字列の長さに関係なく)。C#DataGridTextColumn改行

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); 

のは、私が(200広い)、セルの末尾に改行を作るためにtextColumn3で終わるテキストを作りたいとしましょう。これをどのように達成するのですか?設定できるシンプルなスタイル要素が必要です。私はそれを見つけることができません。

ご協力いただきありがとうございます!

答えて

1

設定できるシンプルなスタイル要素が必要ですか?私はそれを見つけることができません。

はい、あなたがラップするテキストの次のスタイルに列(複数可)のElementStyleプロパティを設定できます。

<Style TargetType="TextBlock"> 
    <Setter Property="TextWrapping" Value="Wrap" /> 
</Style> 

あなたはXamlReader.Parseメソッドを使用してプログラムのスタイルを作成することができます。

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; 
+0

ありがとう、私はプログラム的アプローチを好む。それは完全に動作します! :) TY – Vitriol