如何跳过 WPF DataGrid 单元格焦点并转到其中的控件?
How to skip WPF DataGrid cell focus and go to control inside it?
在 WPF 项目中,我在 datagridcell 中有一个按钮,当我按下 tab 键时,它会首先聚焦单元格,然后是该单元格内的按钮我如何跳过单元格焦点
这些列是动态的,我不知道哪一列有按钮或文本框
由于 DataGrid
中的按钮是 none 标准列类型,我想您已经在使用 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>
在 WPF 项目中,我在 datagridcell 中有一个按钮,当我按下 tab 键时,它会首先聚焦单元格,然后是该单元格内的按钮我如何跳过单元格焦点 这些列是动态的,我不知道哪一列有按钮或文本框
由于 DataGrid
中的按钮是 none 标准列类型,我想您已经在使用 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>