The first two pinned rows are scrolled outside of the viewport when you scroll. For example, if you pin 4 rows, the first two will be scrolled and you will see only the second two pinned. This reproduces in the Green, Windows 11, Crystal and Office2019 themes.
To work this around, set the UseLayoutRounding property of RadGridView to "False". Or use a different Telerik theme.
The rows are measured and arranged wrongly when the ItemsSource is assigned to VirtualQueryableCollectionView. To reproduce this, one of the rows should measure with different height than the others. Also, this is reproducible only when the GroupRenderMode is set to Flat.
To work this around, set the GroupRenderMode property of RadGridView to Nested or avoid using VirtualQueryableCollectionView.
The vertical scrolling seems to become very slow and even unresponsive, when the following conditions are met:
To minimize the issue, you can set the GroupRenderMode property of RadGridView to Nested.
Reset by Clear, RemoveRange causes a memory leak of GridViewRow instances (or TreeListViewRow in RadTreeListView).
To work this around, you can call the Clear method of the RadGridView's Items collection and then reset the ItemsSource property.
this.radGridView.Items.Clear();
this.radGridView.ItemsSource = null;
this.radGridView.ItemsSource = newSource;
Edit: The number of instances of the GridViewRow class are relative to the number of containers which cover the visible viewport. They are kep by internal caching mechanism used for faster reuse of containers is data-reload scenarios. Containers are dettached from their previous viewmodels (DataContext).
In non virtualized scenario, the number of the live containers is the same as the number of items in the GridView's ItemsSource and when changing the source, the number remains the same as the items in the source.
We are closing this issue as we think the mentioned internal cache shouldn't be considered a memory problem but rather a powerful performance optimization internal tool for extensive data-refresh scenarios.
This happens in the following scenarios: 1. The FilterMemberPath points to the Date property of a DateTime one. 2. The column name contains "[]" square brackets.
A NullReferenceException can be thrown when quickly editing different cells with a RadMultiColumnComboBox (placed in the CellEditTemplate of the column) and changing the selection.
System.NullReferenceException HResult=0x80004003 Message=Object reference not set to an instance of an object. Source=Telerik.Windows.Controls.GridView StackTrace: at Telerik.Windows.Controls.MultiColumnComboBox.GridViewDropDownContentManager.OnMouseUp(Object sender, MouseButtonEventArgs args) in Telerik.Windows.Controls.MultiColumnComboBox\GridViewDropDownContentManager.cs:line 283
I already have a work-around and I don't have time to craft an example.
When running two dispatchers in different threads, ie launching the following code twice:
public void LaunchInThread()
{
Thread _thread = new Thread(() =>
{
Application app = new Application();
app.Run(new Window());
});
_thread.SetApartmentState(ApartmentState.STA);
_thread.Start();
}
And setting column hierarchical column headers to some but not all columns by code, ie:
if( ! first_column){ column.ColumnGroupName = "groupName"; if (radGridView.ColumnGroups.FirstOrDefault(x => x.Name == "groupName") != null) return; radGridView.ColumnGroups.Add(new GridViewColumnGroup { Header = "groupName", Name = "groupName" }); }
My guess is that when no header is set, by default an static empty GridViewColumnGroup is reused. And as it's non-freezable it crashes.