当我选择该行的任何部分时,我试图找出如何让空格键切换复选框(位于每行的第一列)。
以下是设置:
<ui:DataGridEx ItemsSource="{Binding ListOfThings}"
SortingCallback="{Binding Sorting}"
SelectionChangedCallback="{Binding SelectionChanged}"
SelectionMode="Extended"
GridLinesVisibility="None"
AutoGenerateColumns="False"
HeadersVisibility="Column"
ScrollViewer.CanContentScroll="True">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="ToolTip" Value="{StaticResource UnhelpfulTooltip}"/>
<Setter Property="ToolTipService.ShowDuration" Value="20000"/>
<Setter Property="IsTabStop" Value="False"/>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
<DataGridTemplateColumn CanUserSort="False" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=Enabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,2.5,5,2.5" IsEnabled="True" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn CanUserSort="False" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Style="{StaticResource ImageOfSomeAwesome}" VerticalAlignment="Center" Margin="5,2.5,5,2.5" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Green!"
CanUserSort="True"
Foreground="DarkGreen"/>
<DataGridTextColumn Header="Magenta!"
CanUserSort="True"
Foreground="DarkMagenta"/>
<DataGridTextColumn Header="Blue!"
CanUserSort="True"
Foreground="MidnightBlue"/>
<DataGridTextColumn Header="Goldenrod!"
CanUserSort="True"
Foreground="DarkGoldenrod"/>
<DataGridTextColumn Header="Cyan!"
CanUserSort="True"
Foreground="DarkCyan"/>
<DataGridTextColumn Header="Yellow AND green!"
CanUserSort="True"
Foreground="YellowGreen"/>
</DataGrid.Columns>
</ui:DataGridEx>
如果我使用鼠标选择一行,则按空格键不会执行任何操作。如果我使用鼠标选中或取消选中该复选框,则按空格键 选中/取消选中该复选框。如果我切换到下一行,空格键也可以,但是复选框本身在边缘周围有一条丑陋的虚线,表明它已被选中(如果我用鼠标检查它就不会发生) 。 vs
如果我通过仅更改xaml选择行后,是否有办法让空格键选中/取消选中该框?或者我是否需要手动处理VM中的OnKeyDown事件?