如何使用WPF修复无限的渲染/测量循环?

时间:2015-03-17 07:50:21

标签: c# wpf xaml wpfdatagrid hang

我有以下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 个答案:

没有答案