我需要在单击中使用空格键检查和取消选中CheckBox。我尝试如下。
<my:DataGridTemplateColumn Header="Chk" MinWidth="40">
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=SELECT,UpdateSourceTrigger=PropertyChanged}" Name="ChkSelect"
Click="ChkSelect_Click" KeyDown="ChkSelect_KeyDown"/>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
使用鼠标,我只需点击一下即可选中/取消选中。 但同样的事情我无法使用空格键进行操作。 按键事件仅在我按Tab键两次时才会触发。 如何使用空格键在一次单击中检查/取消选中CheckBox?
答案 0 :(得分:0)
尝试将FocusManager。FocusedElement添加到checkbox
,以便关注以下复选框:
<CheckBox FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}"
IsChecked="{Binding Path=SELECT,UpdateSourceTrigger=PropertyChanged}"
Name="ChkSelect" Click="ChkSelect_Click" KeyDown="ChkSelect_KeyDown"/>
修改强>
使用cellTemplate添加CellEditingTemplate
,如:
<my:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=SELECT,UpdateSourceTrigger=PropertyChanged}" Name="ChkSelect" Click="ChkSelect_Click" KeyDown="ChkSelect_KeyDown"/>
</DataTemplate>
</my:DataGridTemplateColumn.CellEditingTemplate>
当您在DataGrid
上进入编辑模式时,只要您到达包含它的单元格(使用标签页),您就会关注此复选框。
编辑2:
您也可以尝试使用DataGridCheckBoxColumn代替DataGridTemplateColumn
,<DataGridCheckBoxColumn Header="Chk" Binding="{Binding Path=SELECT,UpdateSourceTrigger=PropertyChanged}" />
仅用于复选框。例如:
var jsoninviteelist= JsonConvert.SerializeObject(inviteelist);
var jsonfriendcircle = JsonConvert.SerializeObject(friendcircle);
await App.azure_rendezvous_mobile_service_3Client.InvokeApiAsync("saveinvite",new JObject(new JProperty("jsoninviteelist",jsoninviteelist),new JProperty("jsonfriendcircle", jsonfriendcircle)));