WPF数据网格文本列多行输入

18

我正在使用.NET 4中的WPF DataGrid控件,其中包含一个DataGridTextColumn。

我希望能够输入多行文本。 当我绑定数据到该列时,换行符被正确格式化,但我发现在编辑文本时没有任何方法创建换行符。

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

有什么建议吗?

2个回答

36

尝试:

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

注意:在我的情况下,这个方法是有效的,但只有当我设置DataGrid.HorizontalScollBarVisibility = "Disabled"时才有效,参考http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/e1b33317-e9ef-4b03-b173-c00aa22fb78d/。一旦我这样做了,我的行就开始美丽地调整大小了。 - Rick Riensche
有没有人解决了在单独的样式资源中完成这个语法的问题?我现在遇到了这个问题,但始终找不到一个可用的样式资源来完成这项工作! - Richard Griffiths
为了防止逐个字符换行并启用逐个空格换行,请使用 Property="TextWrapping" Value="WrapWithOverflow" - Eido95

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>

Extended WPF Toolkit MultiLineTextEditor 将提供您所需的功能。 Extended WPF Toolkit MultiLineTextEditor


你能详细说明一下吗? - wogsland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接