Mes colonnes de datagrid WPF ont une largeur fixe, ce qui signifie que les longs textes des lignes sont coupés. Comment puis-je avoir le retour à la ligne?WPF toolkit dataagrid cell wrapping
6
A
Répondre
5
Vous pouvez remplacer la cellule par un bloc de texte avec Textwrapping activé. -à-dire
<dg:DataGridTemplateColumn Header="Description" Width="*">
<dg:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}" TextWrapping="WrapWithOverflow"/>
</DataTemplate>
</dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>
8
Si vous utilisez un DataGridTextColumn, vous devez définir le style de la DataGridTextColumn.ElementStyle
<dg:DataGridTextColumn Header="SomeLongText" Binding="{Binding MyText}">
<dg:DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap"/>
</Style>
</dg:DataGridTextColumn.ElementStyle>
</dg:DataGridTextColumn>
explination complète se trouve à la http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtextcolumn(v=vs.95).aspx suivante
1
Si votre DataGridTextColumn est créé dans le code derrière vous pouvez définir le style et les setters de cette façon:
_dataGridTextColumn.MaxWidth = 550;
_dataGridTextColumn.ElementStyle = new System.Windows.Style(typeof(TextBlock));
_dataGridTextColumn.ElementStyle.Setters.Add(new Setter(TextBlock.TextWrappingProperty, TextWrapping.Wrap));
Cela entraînera l'enroulement du texte à l'intérieur de _dataGridTextColumn comme dans un TextBlock.
Comment puis-je modifier le texte de la cellule? – Marcel
Textblock est en lecture seule. vous devriez utiliser TextBox. – Slampen