0

WPFDataGridがあります。

ユーザーがタブキーを押すと、1列目と3列目に焦点を合わせたくないので、行に到達すると2列目になり、もう一度タブキーを押して3列に到達すると、4列目に移動します。 。

WPFDataGridでこれを行うにはどうすればよいですか

4

2 に答える 2

5

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>
于 2012-04-24T02:32:48.633 に答える
0

これらの列を無効にすることができます:

<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>
于 2012-04-24T01:10:21.027 に答える