[英]Remove Focus from Particular Columns in WPF DataGrid
我有一個WPF DataGrid。
當用戶按下Tab鍵時,我不想集中在第一列和第三列上,因此當我到達一行時,我應該在第二列中,而當我再次按下Tab鍵並到達3列時,它應該移至第四列。
我如何在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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.