3

我希望防止单个单元格上的制表位,但允许行级制表位

我以为我可以使用 CellStyle 禁用所有单元格上的 IsTabStop

<DataGrid.CellStyle>
    <Style TargetType="DataGridCell">
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="IsTabStop" Value="false"/>
    </Style>
</DataGrid.CellStyle>

但这也可以防止行有制表位

所以我想我应该使用 RowStyle 在行上启用制表位

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Setter Property="IsTabStop" Value="true"/>
    </Style>
</DataGrid.RowStyle>

但这也不起作用

有人有什么想法吗?

4

1 回答 1

7

我的解决方案是这样 -

将所有 DataGridCell 列的 IsTabStop 更改为 false

将我的主列的 IsTabStop 更改为 true,该列是 DataGridTemplateColumn

<DataGrid.CellStyle>
    <Style TargetType="DataGridCell">
        <Setter Property="IsTabStop" Value="false"/>
    </Style>
</DataGrid.CellStyle>


<DataGrid.Columns>

    <DataGridTemplateColumn Header="File name" Width="435">

        <DataGridTemplateColumn.CellStyle>
            <Style TargetType="DataGridCell">
                <Setter Property="IsTabStop" Value="true"/>
                <Setter Property="BorderThickness" Value="0"/>
                <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            </Style>
        </DataGridTemplateColumn.CellStyle>

    ...........

通过包含这条线,我可以禁用虚线方形边框

<Setter Property="FocusVisualStyle" Value="{x:Null}"/>

编辑*

没关系,这太麻烦了。我认为此时使用列表视图对我来说更有意义。

于 2012-05-19T23:43:00.030 回答