我有以下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>
使用箭头键我可以在行上下移动。
如果选择数据网格中的最后一行(如上所示)并按下向下箭头,则应选择列表中的第一行。然而,WPF进入无休止的测量/安排循环。
我之前在每个单元格模板中都有自定义用户控件,但已将其删除并用普通标签替换它们以防我的控件表现不佳。
是否有人知道这是WPF中的错误还是我使用数据网格的问题?