Arrow keys (up and down) don't scroll the first row which is outside of the viewport. One way to reproduce this is to scroll down, then select the topmost visible row and press the Up arrow key in order to select the row above. This should scroll the view a bit up in order to see the previous row which is now selected.
Currently, this doesn't work when using a custom implementation of the GridViewCell class.
The issue is reproducible when GroupRenderMode is set to Flat.
To work this around, you can manually scroll to the row.
public MainWindow()
{
InitializeComponent();
this.gridView.AddHandler(RadGridView.KeyUpEvent, new KeyEventHandler(OnGridViewKeyUp), true);
}
private void OnGridViewKeyUp(object? sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == Key.Up || e.Key == Key.Down)
{
Dispatcher.BeginInvoke(new Action(() =>
{
var currentCell = gridView.CurrentCell;
var row = currentCell.ParentRow;
// Since the VisualOffset proeprty is protected and you are already inheriting the GridViewRow class, you can just expose it through an extra property in the CustomGridViewRow, instead of using reflection like in this example.
var visualOffsetPropInfo = typeof(Visual).GetProperty("VisualOffset", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
var offset = (Vector)visualOffsetPropInfo.GetValue(row);
if (offset.Y < 0)
{
row.BringIntoView();
}
}));
}
}
Currently search tries to match the search value to the complex object value, which always provides negative results. Adding such property will enable search over a primitive type, or string property of the given object.
Check Demos >> GridView >> Hierarchy First HeaderCell should be aligned with the first cell in the gridview. You can find a screenshot attached.
Unhandled exception System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it. at System.Windows.Threading.Dispatcher.VerifyAccess() at System.Windows.DependencyObject.GetValue(DependencyProperty dp) at Telerik.Windows.Data.SortDescriptorBase.get_SortDirection() at Telerik.Windows.Data.Expressions.SortDescriptorCollectionExpressionBuilder.Sort() at Telerik.Windows.Data.QueryableExtensions.Sort(IQueryable source, IEnumerable`1 sortDescriptors) at Telerik.Windows.Data.QueryableExtensions.Sort(IQueryable source, SortDescriptorCollection sortDescriptors) . . .
The exception is fixed. To evaluate the IsReadOnlyBinding of the column, we do not use the built-in binding mechanism but a custom one. This custom binding mechanism is designed to use as a source only the default one which is the current item of the ItemsSource of RadGridView. This is the reason that the scenario where the default source of the binding is changed is not supported by design. Available in LIB version 2017.1.213 , it will be also available in the R1 2017 SP1 Release.
Opening the filter control of the RadGridView control with Xaml binaries in certain themes will throw the following exception:
​System.Windows.Markup.XamlParseException: 'Provide value on 'System.Windows.Markup.StaticResourceHolder' threw an exception.'
Exception: Cannot find resource named 'NullToVisibilityConverter'. Resource names are case-sensitive.
The problem should be resolved with lib version 2015.3.1019.
When the HorizontalContentAlignment of the GridViewCheckBoxColumn's CellStyle setting to Center, the checkboxes in the columns remain on the left side. If another theme like OfficeBlack is used, the checkboxes go on the center.
Implicit row's style should be not cleared when the SelectStyle method of RowStyleSelector returns null.