DataGrid选项卡导航跳过列

时间:2011-09-27 21:03:00

标签: wpf datagrid focus keyboard-navigation datagridcell

我在WPF中有一个带有模板列的数据网格。网格中的几列是只读的,焦点上的其他列变得可编辑(而不是标签,文本框,复选框等)。

我想要实现的是当我浏览网格的列时跳过readonly列。

任何人都知道如何实现这一目标?

谢谢! 弗拉丹


不,不工作:(

这是完整的单元格...单独使用KeyboardNavigation.IsTabStop和IsTabStop尝试了...无法正常工作

<DataGridTemplateColumn Header="{x:Static local:MainWindowResources.gasNameLabel}" Width="*" MinWidth="150" IsReadOnly="True">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ContentControl Content="{Binding Path=Name}" ContentTemplate="{StaticResource DataGridTextBoxView}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellStyle>
        <Style TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
                <Trigger Property="IsReadOnly" Value="true">
                    <Setter Property="KeyboardNavigation.IsTabStop" Value="False"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>

1 个答案:

答案 0 :(得分:13)

这样的事情会起作用:

<DataGrid.Resources>
    <Style TargetType="DataGridCell">
        <Style.Triggers>
            <Trigger Property="IsReadOnly" Value="True">
                <Setter Property="IsTabStop" Value="False"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.Resources>