C# WPF DataGrid列样式忽略IsTabStop false

C# WPF DataGrid列样式忽略IsTabStop false,c#,wpf,xaml,datagrid,C#,Wpf,Xaml,Datagrid,我有一个带有datagrid的usercontrol,它包含两列 用户想要1。单击第二列单元格2。编辑值,3。按tab键进入下一行(第二列单元格),4。编辑第二行中的调用值 但是用户必须按tab键两次,所以我假设第一列中的“IsTabStop”不起作用 我在网上浏览,每个人都说下面的句子应该有用,但它们不适合我。有人知道为什么吗 <UserControl.Resources> ... <Style x:Key="DataGridLabel

我有一个带有datagrid的usercontrol,它包含两列

用户想要1。单击第二列单元格2。编辑值,3。按tab键进入下一行(第二列单元格),4。编辑第二行中的调用值

但是用户必须按tab键两次,所以我假设第一列中的“IsTabStop”不起作用

我在网上浏览,每个人都说下面的句子应该有用,但它们不适合我。有人知道为什么吗

    <UserControl.Resources>
        ...
        <Style x:Key="DataGridLabelCellStyle" TargetType="{x:Type DataGridCell}">
                <Setter Property="IsTabStop" Value="false"/>
        </Style>
        <Style x:Key="DataGridValueCellStyle" TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ValueType}" Value="Text">
                    ...
                    <TextBox Text="{Binding DataContext.Value, .../>
                    ...
                </DataTrigger>
                <DataTrigger Binding="{Binding ValueType}" Value="DateTime">
                    ...
                    <c1:C1DatePicker Text="{Binding Value}" />
                    ...
                </DataTrigger>
                ...
            </Style.Triggers>
        </Style>
    </UserControl.Resources>

    ...
    <DataGrid>
        <DataGrid.Columns>
            <DataGridTextColumn Header="Name" Width="100" IsReadOnly="True" Binding="{Binding Name}" CellStyle="{StaticResource DataGridLabelCellStyle}" />
            <DataGridTextColumn Header="Value" Width="*" IsReadOnly="False" CellStyle="{StaticResource DataGridValueCellStyle}" />
        </DataGrid.Columns>
    </DataGrid>
    ...

...
...

我自己发现的,这是我的错

  • 我插入了一个额外的文本框控件(通过DataTemplate)
  • 因此,我必须为第二个datagrid列添加一个额外的IsTabStop=false
  • 然后它就开始工作了

****
...

您的选项卡从何处开始,名称是第一列还是第二列?当你问问题时,你应该提供你的问题的答案。嗨,mm8,这个评论很有帮助,现在我知道了,为什么它被否决了,你是对的!我试着用更好的方式写这个问题,对不起。。。
 <Style x:Key="DataGridLabelCellStyle" TargetType="{x:Type DataGridCell}">
     <Setter Property="IsTabStop" Value="false"/>
 </Style>
 <Style x:Key="DataGridValueCellStyle" TargetType="{x:Type DataGridCell}">
     **<Setter Property="IsTabStop" Value="false"/>**
     <Style.Triggers>
          ...