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.
Using such negative margin leads to some parts of the template to be actually outside of the control boundaries.
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.
If you set BorderThickness through a custom CellStyle, the left border is overwritten by our code.
To work this around set the GroupRenderMode property of RadGridView to Flat.
When GroupRenderMode is set to Nested the issue can be overcome by calling the BringIntoView method on the row returned in the ScrollIntoViewAsync method's callback:gridView.ScrollIndexIntoViewAsync(index,
new
Action<FrameworkElement>((f) =>
{
f.BringIntoView();
}));