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