0
我有一個WPF DataGrid。從WPF DataGrid中的特定列中移除焦點
當用戶按Tab鍵我不想讓焦點集中在第一列和第三列,所以當我到達一排我應該在第二列,當我再次按Tab鍵並達到3列它sholud移動到第4列。
我怎樣才能做到這一點在WPF的DataGrid
我有一個WPF DataGrid。從WPF DataGrid中的特定列中移除焦點
當用戶按Tab鍵我不想讓焦點集中在第一列和第三列,所以當我到達一排我應該在第二列,當我再次按Tab鍵並達到3列它sholud移動到第4列。
我怎樣才能做到這一點在WPF的DataGrid
的TabStopIndex值是什麼指示下一個被按下Tab鍵時字段應該接收焦點。此外,您可以完全通過設置KeyboardNavigation來禁用控件的TabStop。 IsTabStop附屬財產。
XAML:
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Resources>
<Style x:Key="NoTabStopStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="KeyboardNavigation.IsTabStop" Value="False"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=FirstColumn}" CellStyle="{StaticResource NoTabStopStyle}"/>
<DataGridTextColumn Binding="{Binding Path=SecondColumn}"/>
<DataGridTextColumn Binding="{Binding Path=ThirdColumn}" CellStyle="{StaticResource NoTabStopStyle}"/>
</DataGrid.Columns>
</DataGrid>
您可以禁用這些列:
<Window.Resources>
<Style x:Key="NotSelectableColumStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="IsEnabled" Value="False"/>
</Style>
</Window.Resources>
<Grid Name="LayoutRoot">
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Age}" />
<!--<Disable this column>-->
<DataGridTextColumn CellStyle="{StaticResource NotSelectableColumStyle}" Binding="{Binding Path=Name}" />
<DataGridTextColumn Binding="{Binding Path=Address}" />
</DataGrid.Columns>
</DataGrid>
</Grid>