So I think I found an issue with tabbing between column headers, after the columns have been rearranged.
When changing column position (rearranging columns) on a rad grid, tabbing between headers does not follow the display index. In instead follows the original position of the column.
You can see this behavior on the "GridView Filtering Configuration" demo from the WPF controls examples Telerick tool.
Once you choose the Filtering Configuration demo\example, change the filtering mode to "FitlerRow". You can tab through the headers and the keyboard focus will go to each column properly (Customer ID, Company Name, Country, etc..)
If you move the Country column in between the Customer ID and Company Name. When starting at the Customer ID and tabbing, the tab order remains unchanged (Customer ID, Company Name, Country, etc..). When in fact it should go Customer ID, Country, Company Name, etc.
When selecting a row, the tab order works as expected.
I did some research, but was unable to find a way to work around this. Am I missing something.
Additionally, I was able to smooth out the tabbing (to reduce the number of tabs in the header), with the code below.
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
foreach (var headerCell in AssociatedObject.ChildrenOfType<GridViewHeaderCell>())
{
//var popUp = headerCell.ChildrenOfType<Popup>().FirstOrDefault();
var filteringControl = headerCell.ChildrenOfType<FieldFilterControl>().FirstOrDefault();
if (filteringControl != null)
{
(filteringControl.ChildrenOfType<RadDropDownButton>().FirstOrDefault()).IsTabStop = false;
}
var contentControls = headerCell.ChildrenOfType<ContentControl>().Where( con => con.IsTabStop == true).ToList(); ;
foreach (var content in contentControls)
{
content.IsTabStop = false;
}
}
}
private void Grid_FieldFilterEditorCreated(object sender, EditorCreatedEventArgs e)
{
var stringFilterEditor = e.Editor as StringFilterEditor;
if (stringFilterEditor != null)
{
stringFilterEditor.MatchCaseVisibility = Visibility.Collapsed;
}
}
Thanks,
Cory