WPF DataGridTextColumn неправильно прокручивает длинный многострочный текст - PullRequest
2 голосов
/ 05 января 2011

У меня есть сетка данных 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 Ответ

1 голос
/ 18 января 2011

У меня есть обходной путь, который заключается в использовании 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> 
...