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に変更します

DataGridTemplateColumnであるメイン列のIsTabStopをtrueに変更します

<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 に答える