Полоса прокрутки Datagrid перестает работать - PullRequest
2 голосов
/ 13 ноября 2011

Когда я запускаю приложение, вертикальная полоса прокрутки работает как положено. Однако, когда я добавляю новую строку / строку, панель (элемент управления, который должен перемещаться вверх и вниз на ползунке) не скользит. С помощью колесика мыши я могу прокручивать список строк вверх и вниз и нажимать стрелки вверх и вниз. Таким образом, полоса прокрутки работает, но не так, как ожидалось. Элемент управления должен скользить вверх и вниз, как вначале, но после добавления этой новой строки это не так.

Надеюсь, это достаточно ясно, я искал много проблем, чтобы найти это странное поведение, но безуспешно. Вот частично XAML, как сейчас:

<DataGrid x:Name="inventoryDataGrid" AutoGenerateColumns="False" 
  SelectedValuePath="Id"
  EnableRowVirtualization="True"               
  EnableColumnVirtualization="True" 
  Style="{DynamicResource DataGridDemoStyle}"
  CanUserSortColumns="True"
  VerticalAlignment="Top" 
  ItemsSource="{Binding Source={StaticResource claimInventoryViewSource}}" 
  RowEditEnding="dgInv_RowEditEnding"  
  CellEditEnding="dgInv_CellEditEnding"
  SelectionChanged="dgInv_SelectionChanged"                                             
  IsSynchronizedWithCurrentItem="True"  CanUserAddRows="False" 
  RowHeaderWidth="0"
  Sorting="DataGrid_Standard_Sorting" MouseDoubleClick="inventoryDataGrid_DoubleClick"
  CanUserDeleteRows="True"
  SelectionMode="Single"
  HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Visible"
  Width="999.5"
  CommandManager.PreviewCanExecute="Grid_PreviewCanExecute" Grid.Column="0"
  Grid.Row="1"   
  Margin="0,3,0,0" RowDetailsVisibilityMode="VisibleWhenSelected" Height="227"     
  LostFocus="inventoryDataGrid_LostFocus" Background="#FFFCF2E7"   
  AlternatingRowBackground="#FFF2F2D6" RowBackground="#FF6FC4BF"
  GotFocus="inventoryDataGrid_GotFocus">
<DataGrid.Resources>
 <Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}" >
  <Style.Triggers>
   <Trigger Property="IsSelected" Value="True">
    <Setter Property="Foreground" Value="White"/>
   </Trigger>
  </Style.Triggers>
 </Style>
</DataGrid.Resources>
<DataGrid.Columns>

Спасибо!

1 Ответ

1 голос
/ 26 марта 2012

Мне удалось решить эту проблему.Проблема заключалась в том, что был код, который я реализовал давным-давно в подпрограмме EndEdit (находится здесь: эквивалент EndEdit в WPF ), что каким-то образом вызывало такое ошибочное поведение в моей полосе прокрутки сетки данных.

Как только я удалил этот код, моя полоса прокрутки работала без проблем.Затем, конечно, мне пришлось исследовать способ сохранения данных в текстовых полях без использования EndEdit, но это не относится к теме этого вопроса.

...