Как исправить бесконечный цикл рендеринга / измерения с WPF?

У меня есть следующий код XAML, реализующий сетку данных с DirectionalNavigation = Cycle.

 <DataGrid
    KeyboardNavigation.DirectionalNavigation="Cycle"  
    x:Name="ToolPathGridView"
    VirtualizingPanel.VirtualizationMode="Recycling"
    ScrollViewer.IsDeferredScrollingEnabled="True"
    CanUserAddRows="False"
    SelectionUnit="FullRow"
    CanUserDeleteRows="False"
    SelectionMode="Single"
    ItemsSource="{Binding 
        ToolPath.ToolPath, 
        Mode=OneWay,
        Converter={StaticResource IndexedConverter}}" 
    AutoGenerateColumns="False" 
    SelectedIndex="{Binding SelectedIndex, Mode=TwoWay}">

  <DataGrid.Resources>
     <SolidColorBrush 
       x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" 
       Color="DarkGray"/>
  </DataGrid.Resources>
  <DataGrid.Columns>
     <DataGridTemplateColumn>
         <DataGridTemplateColumn.Header>
             Id
         </DataGridTemplateColumn.Header>
         <DataGridTemplateColumn.CellTemplate>
             <DataTemplate>
                 <TextBlock Text="{Binding Index}"/>
             </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
     </DataGridTemplateColumn>
     <DataGridTemplateColumn>
         <DataGridTemplateColumn.Header>
             <StackPanel Orientation="Horizontal">
                 <TextBlock 
                    Text="{Binding Source={StaticResource T9N},             
                        Path=SwivelAxis}" />

             </StackPanel>
         </DataGridTemplateColumn.Header>
         <DataGridTemplateColumn.CellTemplate>
             <DataTemplate>

                 <Label Content="{Binding Value.ToolAxes.Swivel}"/>
              </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
     </DataGridTemplateColumn>
      <DataGridTemplateColumn>
         <DataGridTemplateColumn.Header>
             <StackPanel Orientation="Horizontal">
                 <TextBlock 
                    Text="{Binding Source={StaticResource T9N},     
                        Path=ChuckAxis}" />

             </StackPanel>
         </DataGridTemplateColumn.Header>
         <DataGridTemplateColumn.CellTemplate>
             <DataTemplate>

                 <Label Content="{Binding Value.ToolAxes.Chuck}"/>
             </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
     </DataGridTemplateColumn>
      <DataGridTemplateColumn>
         <DataGridTemplateColumn.Header>
             <StackPanel Orientation="Horizontal">
                 <TextBlock 
                    Text="{Binding Source={StaticResource T9N}, 
                            Path=VerticalAxis}" />

             </StackPanel>
         </DataGridTemplateColumn.Header>
         <DataGridTemplateColumn.CellTemplate>
             <DataTemplate>
                 <Label Content="{Binding Value.ToolAxes.Vertical}"/>
             </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
     </DataGridTemplateColumn>
  </DataGrid.Columns>
</DataGrid>

DataGrid

С помощью клавиш со стрелками я могу перемещаться вверх и вниз по строкам.

Если выбрана последняя строка в сетке данных, как указано выше, и нажата стрелка вниз, то должна быть выбрана первая строка в списке. Однако WPF входит в бесконечный цикл измерения / аранжировки.

Ранее у меня были пользовательские элементы управления в каждом из шаблонов ячеек, но я удалил их и заменил их на простые метки на случай, если мои элементы управления работают плохо.

Кто-нибудь есть идеи, если это ошибка в WPF или проблема с использованием сетки данных?

0 ответов

Другие вопросы по тегам