【发布时间】:2017-02-17 23:33:54
【问题描述】:
我有一个GridView,其中CheckBox 作为一列,TextBlock 作为另一列。这是XAML 代码:
<ListView.View>
<GridView>
<GridView.ColumnHeaderContainerStyle>
<Style>
<Setter Property="UIElement.Visibility"
Value="Collapsed"/>
</Style>
</GridView.ColumnHeaderContainerStyle>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Tag="{Binding}"
IsChecked="{Binding Path=IsFormChecked, Mode=TwoWay}"
IsEnabled="{Binding Path=IsUnRestricted}"
IsThreeState="False"
UIElement.KeyUp="CheckBox_KeyUp" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="auto">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Width="600"
Tag="{Binding}"
IsEnabled="{Binding Path=IsUnRestricted}"
Text="{Binding Path=FormName}"
MouseUp="TextBlock_MouseUp">
<TextBlock.ToolTip>
<TextBlock Text="{Binding Path=FormName}"/>
</TextBlock.ToolTip>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
当我使用键盘完整行访问此GridView 时(CheckBox 以及TextBlock)。现在,如果我按空格键,什么都不会发生。如果我想使用键盘访问CheckBox,我必须再次按 Tab 键,以便将焦点设置在复选框上,然后我可以使用空格键选中/取消选中它。我想要做的是当焦点位于我想要选中/取消选中复选框的行时,只需按一下空格键即可。
【问题讨论】: