【问题标题】:WPF DataGrid column style ignores IsTabStop falseWPF DataGrid 列样式忽略 IsTabStop false
【发布时间】: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,这条评论很有帮助,现在我知道了,为什么它被否决了你是对的!
  • 我试着用更好的方式写问题,对不起...

标签: c# wpf xaml datagrid


【解决方案1】:

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

  • 我插入了一个额外的 TextBox 控件(通过 DataTemplate)
  • 所以我必须为第二个数据网格列简单地添加一个额外的 IsTabStop = false
  • 然后它工作了
 <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>
          ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 2012-06-26
    • 2010-12-16
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多