【发布时间】:2020-05-22 22:20:17
【问题描述】:
我有一个用户控件,其数据网格包含两列。
用户想要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>
...
【问题讨论】:
-
您从哪里选择标签,第一列或第二列的名称是什么?提问时,您应该提供问题的Minimal, Reproducible Example。
-
嗨,mm8,这条评论很有帮助,现在我知道了,为什么它被否决了你是对的!
-
我试着用更好的方式写问题,对不起...