2011-06-15 12 views
9

Estoy usando el control WPF DataGrid en .NET 4 que tiene un DataGridTextColumn.WPF DataGridTextColumn entrada de varias líneas

Quiero poder ingresar texto de varias líneas. Los saltos de línea están formateados correctamente cuando vincula datos a la columna, pero no he encontrado forma de crear los saltos de línea al editar el texto.

<DataGrid ItemsSource="{Binding MyMessages}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Message" Binding="{Binding Path=Message}" Width="Auto"/> 
    <DataGrid.Columns> 
</DataGrid> 

¿Alguna sugerencia?

Respuesta

24

Probar:

<DataGridTextColumn Header="Message" Binding="{Binding Path=Message}" Width="Auto"> 
     <DataGridTextColumn.ElementStyle> 
      <Style TargetType="TextBlock"> 
       <Setter Property="TextWrapping" Value="Wrap" /> 
      </Style> 
     </DataGridTextColumn.ElementStyle> 
     <DataGridTextColumn.EditingElementStyle> 
      <Style TargetType="TextBox"> 
       <Setter Property="TextWrapping" Value="Wrap" /> 
       <Setter Property="AcceptsReturn" Value="true" /> 
      </Style> 
     </DataGridTextColumn.EditingElementStyle> 
    </DataGridTextColumn> 
+0

funciona como un encanto :-) – Freddy

+0

Nota: En mi caso esto funcionó, pero sólo si fijo DataGrid.HorizontalScollBarVisibility = "minusválidos" por http://social.msdn.microsoft.com/Forums/en- US/wpf/thread/e1b33317-e9ef-4b03-b173-c00aa22fb78d/Una vez que lo hice, mis filas comenzaron a cambiar de tamaño maravillosamente. –

+0

¿Hay alguien que haya resuelto la sintaxis de hacer esto en un recurso de estilo independiente? ¡Estoy teniendo este problema ahora mismo y no puedo encontrar un recurso de estilo de trabajo para hacer este trabajo! –

0

xmlns:wtk="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit" 
 

 
<DataTemplate x:Key="dataGridMultiLineTextBoxTemplateColumn" DataType="your data type"> 
 
     <wtk:MultiLineTextEditor 
 
      x:Name="MultiLineTextBox" 
 
      Width="300" 
 
      Margin="2" 
 
      Padding="5,0,0,0" 
 
      FontSize="12" 
 
      FontWeight="Normal" 
 
      Foreground="Black" 
 
      IsSpellCheckEnabled="True" 
 
      Text="{Binding your binding property, Mode=TwoWay, NotifyOnTargetUpdated=True, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}" 
 
      TextWrapping="Wrap" /> 
 
    </DataTemplate>

extendido WPF Toolkit MultiLineTextEditor proporcionará lo que necesita. Extended WPF Toolkit MultiLineTextEditor

+0

¿Puedes ampliar eso? – wogsland

+1

Respuesta actualizada. – Yaz

Cuestiones relacionadas