VirtualGridCellClipboardEventArgs.Cell.ColumnIndex is off by 1 if you pin a column to the left.
Same with VirtualGridCellClipboardEventArgs.Cell.RowIndex if you pin a column to the top.
This component will have the goal to achieve fast operations when dealing with millions of records from a data source. This should be accomplished by decoupling the UI logic from data management operations like loading, filtering, sorting and grouping which should be delegated to the server. Since the grid will not have ItemsSource property, the developer will be responsible for managing the data to/from the server through a given events. Official version of RadVirtualGrid is available from R3 2017 Release of UI for WPF. Check what's new in R3 2017 here: http://www.telerik.com/support/whats-new/wpf/release-history/ui-for-wpf-r3-2017
HeaderSizeNeeded is fired twice with the same index and affects the header row width.
The FilterColumn method does not position the filtering popup on the passed column index when it is opened.
A workaround to this behavior would be to manually position the filtering popup using the following approach:
this.virtualGrid.FilterColumn(2);
var virtualizingCanvasBase = this.virtualGrid.ChildrenOfType<VirtualizingCanvasBase>().FirstOrDefault();
var columnsRenderInfoInfo = virtualizingCanvasBase.GetType().GetProperty("ColumnsRenderInfo", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
var columnsRenderInfo = columnsRenderInfoInfo.GetValue(virtualizingCanvasBase);
var offsetMethodInfo = columnsRenderInfo.GetType().GetMethod("OffsetFromIndex");
var filteringPopupPropertyInfo = this.virtualGrid.GetType().GetProperty("FilteringPopup", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
Popup filteringPopup = (Popup)filteringPopupPropertyInfo.GetValue(this.virtualGrid);
filteringPopup.HorizontalOffset = (double)offsetMethodInfo.Invoke(columnsRenderInfo, new object[1] { 2 });
The FilterColumn method should be called, in order for the filtering Popup to be created.