私はWPF DataGridを持っています。WPF DataGridの特定の列からフォーカスを削除します
ユーザーがタブキーを押すと、第1列と第3列にフォーカスしたいので、第2列になければなりません。また、もう一度Tabキーを押して3列に達すると、 4列目に移動します。
どのように私は、WPFのDataGrid
私はWPF DataGridを持っています。WPF DataGridの特定の列からフォーカスを削除します
ユーザーがタブキーを押すと、第1列と第3列にフォーカスしたいので、第2列になければなりません。また、もう一度Tabキーを押して3列に達すると、 4列目に移動します。
どのように私は、WPFのDataGrid
TabStopIndex値は、Tabキーを押したときに次のフォーカスを受け取る必要のあるフィールドを示しているものです。さらに、コントロールのTabStopを無効にするには、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>