我有一个Window
很少的控件。其中一个是DataGrid
. 我想实现一些非默认的焦点遍历。即:
DataGrid
是一个整体,而不是每一行。- 当
DataGrid
获得焦点时,用户可以使用向上和向下键在行中导航。 - 不允许使用左右键浏览列。
- 第一列(也是唯一与导航相关的)是
DataGridHyperlinkColumn
. 当用户点击 Space 或 Enter 键时,它会执行超链接。
目前我有以下代码:
<DataGrid x:Name="DocumentTemplatesGrid"
Grid.Row="2"
ItemsSource="{Binding Source={StaticResource DocumentTemplatesView}}"
IsReadOnly="True"
AutoGenerateColumns="False"
SelectionUnit="FullRow"
SelectionMode="Single"
TabIndex="1"
IsTabStop="True">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="IsTabStop" Value="False"/>
</Style>
</DataGrid.CellStyle>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="IsTabStop" Value="False"/>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridHyperlinkColumn Header="Name"
Width="2*"
Binding="{Binding Name}"/>
<DataGridTextColumn Header="Description"
Width="5*"
Binding="{Binding Description}"/>
<DataGridTextColumn Header="Type"
Width="*"
Binding="{Binding Type}"/>
</DataGrid.Columns>
</DataGrid>
不幸的是,它没有达到我的期望。请您解释一下如何实现这一目标?