在一个WPF项目中,我有一个位于DataGridCell中的按钮。当我按tab键时,它会先聚焦到单元格,然后再聚焦到单元格内的按钮。如何跳过单元格聚焦?
这些列是动态的,我不知道哪一列有按钮或文本框。
这些列是动态的,我不知道哪一列有按钮或文本框。
由于在 DataGrid
中的按钮不属于标准列类型之一,我假设你已经在使用 DataGridTemplateColumn
。
除了设置 DataGridTemplateColumn.CellTemplate
之外,还需设置 DataGridTemplateColumn.CellStyle
,并通过样式将 DataGridCell.IsTabStop
属性设置为 False
:
<DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding IsChecked}" Header="CheckBoxColumn" />
<DataGridTextColumn Binding="{Binding Text}" Header="TextColumn" />
<DataGridTemplateColumn Header="ButtonColumn">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Text" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="IsTabStop" Value="False" />
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
DataGrid
的Enter键行为来说都不足够。对于这个问题,我会使用GotFocus
事件进行处理。就这些。 - peterboccia