WPF DataGridTextColumn无法在长多行文本上正确滚动

时间:2011-01-05 12:21:47

标签: .net wpf xaml wpfdatagrid

我将WPF数据网格数据绑定到对象List<>。问题是其中一个DataGridTextColumn单元格有一个很长的多行文本,而垂直滚动条不允许我滚动浏览特定单元格的内容,而只能滚动到下一个单元格。有谁遇到过这个问题?代码如下所示:

<DataGridTextColumn Header="Value" Binding="{Binding Value}" Width="*">
      <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 :(得分:1)

我的解决方法是使用dataTemplate。然后,dataTemplate包含TextBox控件,其属性为ScrollViewer.CanContentScroll和ScrollViewer.VerticalScrollBarVisibility set。

<DataGridTemplateColumn Header="Value" Width="*" IsReadOnly="True">
     <DataGridTemplateColumn.CellTemplate>
         <DataTemplate>
            <TextBox Text="{Binding Value}" AcceptsReturn="True" TextWrapping="Wrap" Height="150" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True"></TextBox>
         </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>