【问题标题】:WPF DataGridTextColumn doesn't scroll properly on long multiline textWPF DataGridTextColumn 在长多行文本上无法正确滚动
【发布时间】:2011-01-05 12:21:47
【问题描述】:

我已将 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>

【问题讨论】:

  • 也许是另一种方法?

标签: .net wpf xaml wpfdatagrid


【解决方案1】:

我的解决方法是使用 dataTemplate。然后 dataTemplate 包含 TextBox 控件,并设置了属性 ScrollViewer.CanContentScroll 和 ScrollViewer.VerticalScrollBarVisibility。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-15
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多