私はカスタムスタイルを持つデータグリッドを持っていますので、このフォーマットをアプリケーション全体で再利用できます。それは、カスタム列のヘッダースタイル、行スタイルなどを持っています。私は、テキストの折り返しが列ヘッダーで動作するようにして、データを正しくバインドすることができました。私がセル上で同じテクニックを使用しようとすると、バインディングは機能していないように見えますが、ラップは機能しています。私は以下の記事を読んだが、データグリッドを配置した後は毎回スタイルを設定する必要があるようだ。それはリソース辞書で行うことはできませんか、間違った場所にラッピングを適用していますか?ここでWPF Datagridセルテキストの折り返し
wpf DataGrid change wrapping on cells
WPF toolkit datagrid cell text wrapping
WPF DataGrid Cell Text Wrapping - set to NoWrap (False)
データグリッドの定義(トリミング)である:ここでは
<Style x:Key="EmbedDG" TargetType="{x:Type DataGrid}" >
<Setter Property="ColumnHeaderStyle" Value="{DynamicResource DGCH}" />
<Setter Property="CellStyle" Value="{DynamicResource EmbedDGCE}" />
</Style>
は、テキストの折り返しを示す作業DGCHスタイルです:
ここでは(なしcontenttemplate、2と写真1)は動作しませんcellstyleです:
<Style x:Key="EmbedDGCE" TargetType="{x:Type DataGridCell}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
EDIT:
<DataGrid Style="{DynamicResource EmbedDG}" ItemsSource="{Binding Tags}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Tag Type" Binding="{Binding TagType}" Width="180" />
<DataGridTextColumn Header="Tag Comments" Binding="{Binding Message}" Width="300"/>
</DataGrid.Columns>
</DataGrid>
写真2は、セル内のすべてのテキストを保持する固定幅を持っています。幅が小さい場合、テキストは折り返されません。ちょっとした説明。 – GregN
"パスが混乱します"、 "データグリッドを配置した後"、 "バインドを無効にする" - これらのフレーズの意味を明確にすることはできますか? –
私はもともとPicture 2で始まりました。そのコレクションをとり、要素をバインドします:名前文字列とメッセージ文字列。それは動作しますが、メッセージ文字列が幅が長すぎるため、メッセージを折り返したいと思います。つまり、カスタムのセルスタイルを追加してテキストの折り返しを適用したとき(列見出しのように)です。セルスタイルを適用すると、バインディングのデータはコレクションのプロパティではなく、コレクションの名前になります(写真1)。 – GregN