WPF DataGridTextColumn多行输入

时间:2011-06-15 07:56:36

标签: wpf wpfdatagrid

我在.NET 4中使用具有DataGridTextColumn的WPF DataGrid控件。

我希望能够输入多行文字。 将数据绑定到列时,换行符的格式正确,但在编辑文本时我找不到创建换行符的方法。

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

有什么建议吗?

2 个答案:

答案 0 :(得分:27)

尝试:

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

答案 1 :(得分:0)

&#13;
&#13;
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>
&#13;
&#13;
&#13;

扩展的WPF工具包MultiLineTextEditor将提供您所需的功能。 Extended WPF Toolkit MultiLineTextEditor