I have a grid that could have as many as 3000 rows in it. I have 5 ReadOnly columns and one CheckBox column that is enabled. The user needs to:
Note: This is how the out-of-the-box CheckBoxColumn in the MS Grid works.
- move from record to record using the up/down keyboard arrows.
- On moving up and down, the focus needs to remain on the CheckBox column.
- User should have a visual queue which row and column is selected. Currently, row is obvious; column is not.
- press the spacebar to toggle the checkbox value to the next/other value.
- I'm not convinced that putting a KeyDown event handler on the CheckBox is valid because it seems the keydown is actually on the cell that contains the CheckBox.
How can I accomplish this?
Grid:
| <telerikGrid:RadGridView x:Name="equipmentGrid" Grid.Row="1" |
| AutoGenerateColumns="False" ShowGroupPanel="True"> |
| <telerikGrid:RadGridView.Columns> |
| <telerikGrid:GridViewDataColumn Header="System" |
| DataMemberBinding="{Binding Root}" IsReadOnly="True" /> |
| <telerikGrid:GridViewDataColumn Header="Area" |
| DataMemberBinding="{Binding Area}" IsReadOnly="True" /> |
| <telerikGrid:GridViewDataColumn Header="Process Cell" |
| DataMemberBinding="{Binding ProcessCell}" IsReadOnly="True" /> |
| <telerikGrid:GridViewDataColumn Header="Unit" |
| DataMemberBinding="{Binding Unit}" IsReadOnly="True" /> |
| <telerikGrid:GridViewDataColumn Header="Module" |
| DataMemberBinding="{Binding Module}" IsReadOnly="True" /> |
| <telerik:GridViewDataColumn |
| Header="Include" |
| IsCustomSortingEnabled="True" |
| IsFilterable="True"> |
| <telerik:GridViewColumn.CellTemplate> |
| <DataTemplate> |
| <CheckBox |
| VerticalAlignment="Center" |
| IsChecked="{Binding Path=IsChecked}" |
| /> |
| </DataTemplate> |
| </telerik:GridViewColumn.CellTemplate> |
| </telerik:GridViewDataColumn> |
| </telerikGrid:RadGridView.Columns> |
| </telerikGrid:RadGridView> |
Note: This is how the out-of-the-box CheckBoxColumn in the MS Grid works.