Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

The following exception is raised when adding a ColumnGroupDescriptor to the GroupDescriptors property of a RadGridView. This bug is data specific and I've only been able to duplicate it with a large data set but the issue seems like it could be addressed without the actual data, given that the code causing the issue is apparently passing a pixelWidth < 0.

System.ArgumentOutOfRangeException: 'The parameter value must be greater than zero.
Parameter name: pixelWidth'

  PresentationCore.dll!System.Windows.Media.Imaging.RenderTargetBitmap.RenderTargetBitmap(int pixelWidth, int pixelHeight, double dpiX, double dpiY, System.Windows.Media.PixelFormat pixelFormat) Unknown
  Telerik.Windows.Controls.dll!Telerik.Windows.Controls.FrameworkElementToImageConverter.ToImage(System.Windows.FrameworkElement element) Unknown
  Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Controls.GridView.GridViewGroupPanel.ConvertFrameworkElementToImage(System.Windows.FrameworkElement frameworkElement) Unknown
  Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Controls.GridView.GridViewGroupPanel.GetEffectiveContentForDescriptor(Telerik.Windows.Data.IGroupDescriptor descriptor) Unknown
  Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Controls.GridView.GridViewGroupPanel.PrepareContainerForItemOverride(System.Windows.DependencyObject element, object item) Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemsControl.MS.Internal.Controls.IGeneratorHost.PrepareItemContainer(System.Windows.DependencyObject container, object item) Unknown
  PresentationFramework.dll!System.Windows.Controls.Panel.AddChildren(System.Windows.Controls.Primitives.GeneratorPosition pos, int itemCount) Unknown
  PresentationFramework.dll!System.Windows.Controls.Panel.OnItemsChangedInternal(object sender, System.Windows.Controls.Primitives.ItemsChangedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Controls.Panel.OnItemsChanged(object sender, System.Windows.Controls.Primitives.ItemsChangedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemContainerGenerator.OnItemAdded(object item, int index, System.Collections.Specialized.NotifyCollectionChangedEventArgs collectionChangedArgs) Unknown
  PresentationFramework.dll!System.Windows.Controls.ItemContainerGenerator.OnCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.DeliverEvent(object sender, System.EventArgs e, System.Type managerType) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.DeliverEvent(object sender, System.EventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.DeliverEvent(object sender, System.EventArgs e, System.Type managerType) Unknown
  WindowsBase.dll!System.Windows.WeakEventManager.DeliverEvent(object sender, System.EventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.Data.ListCollectionView.ProcessCollectionChangedWithAdjustedIndex(System.Collections.Specialized.NotifyCollectionChangedEventArgs args, int adjustedOldIndex, int adjustedNewIndex) Unknown
  System.dll!System.Collections.ObjectModel.ObservableCollection<System.__Canon>.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) Unknown
  Telerik.Windows.Data.dll!Telerik.Windows.Data.ObservableItemCollection<Telerik.Windows.Data.IGroupDescriptor>.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) Unknown
  System.dll!System.Collections.ObjectModel.ObservableCollection<System.__Canon>.InsertItem(int index, System.__Canon item) Unknown
> Sage.Platform.Core.Wpf.dll!Sage.EstDataSource.Wpf.RadGridViewSerializer.DeserializeGroupDescriptors(Telerik.Windows.Controls.GridView.GridViewDataControl grid, Sage.Wpf.Utilities.GridViewSerializationInfo serializationInfo) Line 524 C#
  Sage.Platform.Core.Wpf.dll!Sage.EstDataSource.Wpf.RadGridViewSerializer.DeserializeGridInfo(Telerik.Windows.Controls.GridView.GridViewDataControl grid, System.Func<string, bool> isRenamableColumn, System.Xml.XmlReader reader, bool skipDeserializeGroups) Line 235 C#
  Sage.Platform.Core.Wpf.dll!Sage.EstDataSource.Wpf.RadGridViewSerializer.DeserializeGridSettings(Telerik.Windows.Controls.GridView.GridViewDataControl grid, System.Func<string, bool> isRenamableColumn, System.IO.Stream stream, bool skipDeserializeGroups) Line 199 C#
  Sage.Platform.Core.Wpf.dll!Sage.EstDataSource.Wpf.RadGridViewSerializer.DeserializeGridSettings(Telerik.Windows.Controls.GridView.GridViewDataControl grid, System.Func<string, bool> isRenamableColumn, System.IO.Stream stream) Line 168 C#
  Sage.Estimating.DataSource.Wpf.dll!Sage.EstDataSource.Wpf.ViewModel.EstimateDB.EstimateGridViewModel.DeserializeLayoutGridInfo(Telerik.Windows.Controls.RadGridView dataGrid, System.IO.MemoryStream stream) Line 122 C#
  Sage.Estimating.DataSource.Wpf.dll!Sage.EstDataSource.Wpf.ViewModel.EstimateDB.EstimateGridViewModel.DeserializeCurrentLayoutGridInfo(Telerik.Windows.Controls.RadGridView dataGrid, System.IO.MemoryStream defaultLayoutStream) Line 257 C#
  Sage.Estimating.DataSource.Wpf.dll!Sage.EstDataSource.Wpf.View.EstimateDB.EstimateGrid.ApplyCurrentLayoutToGrid() Line 210 C#
  Sage.Estimating.DataSource.Wpf.dll!Sage.EstDataSource.Wpf.View.EstimateDB.EstimateGrid.EstimateInfoGrid_Loaded(object sender, System.Windows.RoutedEventArgs e) Line 167 C#
  PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source, System.Windows.RoutedEventArgs args, bool reRaised) Unknown
  PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender, System.Windows.RoutedEventArgs args) Unknown
  PresentationFramework.dll!System.Windows.BroadcastEventHelper.BroadcastEvent(System.Windows.DependencyObject root, System.Windows.RoutedEvent routedEvent) Unknown
  PresentationFramework.dll!System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(object root) Unknown
  PresentationCore.dll!MS.Internal.LoadedOrUnloadedOperation.DoWork() Unknown
  PresentationCore.dll!System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() Unknown
  PresentationCore.dll!System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() Unknown
  PresentationCore.dll!System.Windows.Media.MediaContext.RenderMessageHandlerCore(object resizedCompositionTarget) Unknown
  PresentationCore.dll!System.Windows.Media.MediaContext.RenderMessageHandler(object resizedCompositionTarget) Unknown
  WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) Unknown
  WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.TryCatchWhen(object source, System.Delegate callback, object args, int numArgs, System.Delegate catchHandler) Unknown
  WindowsBase.dll!System.Windows.Threading.DispatcherOperation.InvokeImpl() Unknown
  WindowsBase.dll!MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(object obj) Unknown
  mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown
  mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown
  mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
  WindowsBase.dll!MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
  WindowsBase.dll!System.Windows.Threading.DispatcherOperation.Invoke() Unknown
  WindowsBase.dll!System.Windows.Threading.Dispatcher.ProcessQueue() Unknown
  WindowsBase.dll!System.Windows.Threading.Dispatcher.WndProcHook(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) Unknown
  WindowsBase.dll!MS.Win32.HwndWrapper.WndProc(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) Unknown
  WindowsBase.dll!MS.Win32.HwndSubclass.DispatcherCallbackOperation(object o) Unknown
  WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) Unknown
  WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.TryCatchWhen(object source, System.Delegate callback, object args, int numArgs, System.Delegate catchHandler) Unknown
  WindowsBase.dll!System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority priority, System.TimeSpan timeout, System.Delegate method, object args, int numArgs) Unknown
  WindowsBase.dll!MS.Win32.HwndSubclass.SubclassWndProc(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam) Unknown
  [Native to Managed Transition]
  [Managed to Native Transition]
  WindowsBase.dll!System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame frame) Unknown
  PresentationFramework.dll!System.Windows.Application.RunDispatcher(object ignore) Unknown
  PresentationFramework.dll!System.Windows.Application.RunInternal(System.Windows.Window window) Unknown
  Sage.EstManagementConsole.exe!Sage.EstManagementConsole.EstimatingManagementConsoleApp.Main() Unknown

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

The RadGridView control hangs when the frozen columns are enabled and the application is resized. The exact resizing depends on the screen resolution and the exact new size. This was originally recreated on a monitor with 1600x900 resolution 125% DPI and the application was maximized (resized from restored to full screen size). The issue occurs in the Fluent theme. Also, the FluentPalette.Palette.ScrollBarsMode static property should be set to Normal.

To work this around, you can overrider the MeasureOverride method of RadGridView and add the following code:

public class CustomGridView: RadGridView
{
    private static readonly PropertyInfo internalColumnsProp = typeof(GridViewDataControl).GetProperty("InternalColumns", BindingFlags.Instance | BindingFlags.NonPublic);
    private static MethodInfo invalidateColumnsMethod;

    protected override Size MeasureOverride(Size availableSize)
    {
        if (EnableRowVirtualization && !double.IsInfinity(availableSize.Height))
        {
            var internalColumns = internalColumnsProp.GetValue(this);
            if (invalidateColumnsMethod == null)
            {
                invalidateColumnsMethod = internalColumns.GetType().GetMethod("InvalidateColumnWidthsCalculation", BindingFlags.Instance | BindingFlags.NonPublic);                     
            }

            invalidateColumnsMethod.Invoke(internalColumns, null);
        }
        return base.MeasureOverride(availableSize);
    }

 

Unplanned
Last Updated: 08 Jan 2025 13:13 by Martin Ivanov
Currently, the RadDataFilterView (shown when FilteringMode of RadGridView is set to FilterEditor) displays brackets around the filter criterias (descriptors). However, these brackets are added only for the filter descriptors in the first level of the hierarchy of descriptors. Add support for showing brackets for the nested filter descriptors as well.
Completed
Last Updated: 11 Feb 2025 07:40 by ADMIN
Release 2025.1.211 (2025 Q1)

The selection with the Shift key when SelectionMode=Extended no longer works in the default Nested rendering mode of RadGridView. This reproduces only when the data view is grouped.

To work this around, set the GroupRenderMode property of RadGridView to Flat.

<telerik:RadGridView GroupRenderMode="Flat" />

Completed
Last Updated: 11 Feb 2025 07:40 by ADMIN
Release 2025.1.211 (2025 Q1)

The GridViewSelectColumn displays a CheckBox in its header, which selects all rows in the column. If the CheckBox is unchecked, and you click it to check the items, the items get selected/checked. However, the CheckBox doesn't get check until the second click.

This reproduces only when the RadGridView is grouped and also the groups are collapsed so that no data records are visible.

To work this around, you can replace the default CheckBox with a new one in the column's Header. Then, manually select and deselect the items. You can use the CheckBox MouseLeftButtonDown or Checked/Unchecked events. Note that it is important to wrap the CheckBox in the Header, in another control (like a Grid in the example below), in order to avoid the default RadGridView logic to kick-in.

  <telerik:GridViewSelectColumn>
      <telerik:GridViewSelectColumn.Header>
          <Grid>
              <CheckBox PreviewMouseLeftButtonDown="CheckBox_PreviewMouseLeftButtonDown"/>
          </Grid>
      </telerik:GridViewSelectColumn.Header>
  </telerik:GridViewSelectColumn>


 private void CheckBox_PreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     var checkBox = (CheckBox)sender;            
     if (checkBox.IsChecked.Value)
     {
         this.GridView.SelectedItems.Clear();
     }
     else
     {
         this.GridView.SelectAll();
     }
 }

 

Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707
In a scenario where the RadGridView control utilizes the right frozen columns functionality with the RowIndicatorVisibility="Collapsed", CanUserFreezeColumns="False", and RightFrozenColumnsSplitterVisibility="Visible, cells can become missing while scrolling.
Unplanned
Last Updated: 16 Dec 2024 15:10 by Stenly
In a touch scenario, the rows are not pinned as expected compared to when working with a mouse.
Completed
Last Updated: 11 Feb 2025 07:40 by ADMIN
Release 2025.1.211 (2025 Q1)

When the RadGridView is filtered you can get all items in the data view using the Items collection property of the control. The count can be accessed with the gridView.Items.Count property.

If the RadGridView is grouped and then filtered, the Items.Count no longer returns the correct value. The count doesn't take into account the items that are in collapsed groups. Instead the count contains only the expanded group objects.

To work this around, use the following code instead of gridView.Items.Count.

int count = gridView.Items.OfType<object>().Count(); 

Unplanned
Last Updated: 03 Dec 2024 12:39 by Stenly
Currently, the columns allow you to customize the GridViewFooterCell element by specifying a custom Style, through the FooterCellStyle property. However, there isn't an option to apply conditional styles. We can introduce such an API.
Completed
Last Updated: 07 Jul 2025 07:29 by ADMIN
Release 2025.2.707

Exception when resizing column with width set to star and min-width set to 0.

Set the properties to the above and resize a column to 0 and then to the original width -> an exception occurs.

 

Unplanned
Last Updated: 28 Nov 2024 11:20 by Vladimir
Currently when the DistinctValuesDisplayMode is Tree the distinct values are grouped by year,month and day. Extend this functionality for the time components (hour/minute/day) of DateTime values as well. 
Completed
Last Updated: 11 Feb 2025 07:40 by ADMIN
Release 2025.1.211 (2025 Q1)
The GridViewCheckBox element is not affected by the compact mode of the Windows 11 theme.
Unplanned
Last Updated: 22 Nov 2024 06:53 by Niklas
GridView: Context Menu Opens at Incorrect Position via Keyboard Shortcut.
Unplanned
Last Updated: 05 Nov 2024 13:35 by Martin Ivanov

The Clear Filters option in the FieldFilterControl cannot be selected when the DefaultOperator1 is set in the FilterOperatorsLoading event of RadGridView. The FieldFilterControl is the element shown under the column header when the FilteringMode property of RadGridView is set to FilterRow. Setting e.DefaulteOperator1 in the FilterOperatorsLoading properly selects the corresponding filter in the drop down, but after that you cannot select Clear Filters when clicking on this option.

To work this around, you can use the CellLoaded event instead of FilterOperatorsLoading. This will allow you to get the FieldFilterControlViewModel and set its SelectedOperatorViewModel property.

private void manualGridView_CellLoaded(object sender, CellEventArgs e)
{
    if (e.Cell is GridViewHeaderCell && e.Cell.Column.UniqueName == "MyColumn")
    {
        Dispatcher.BeginInvoke(new Action(() =>
        {
            var fieldFilter = e.Cell.FindChildByType<FieldFilterControl>();
            var viewModel = (FieldFilterControlViewModel)fieldFilter.DataContext;
            viewModel.SelectedOperatorViewModel = viewModel.AvailableOperatorViewModels.FirstOrDefault(x => x.FilterOperator == FilterOperator.IsLessThan);
        }));
    }
}

Unplanned
Last Updated: 24 Oct 2024 10:33 by Stenly
Not all cells that contain the searched word are displayed when searching columns that are bound to enum properties.
Unplanned
Last Updated: 16 Oct 2024 07:05 by Stenly
When the EnableStickyGroupHeaders property is set to True, calling the ScrollIntoViewAsync method does not take into account the sticky group row.
Completed
Last Updated: 13 Nov 2024 17:31 by ADMIN
Release Telerik UI for WPF 2024.4.1111 (2024 Q4)
In a scenario with multiple GroupDescriptors (3,4,5 or more) - data operations like sorting a group, sorting a column or filtering can be slower when the RadGridView is populated with a large amount of data. 
Unplanned
Last Updated: 11 Oct 2024 07:05 by Martin Ivanov

The height of the column footer is not updated properly to autofit the footer's content. Actually, this works when the footer content becomes bigger than the current (or the default) value, but if you change the content with a smaller one, the bigger height remains. In other words, the footer height autofits when the content becomes bigger but it doesn't decrease when the content becomes smaller after that.

To work this around, you can subscribe to the CellLoaded event and use reflection to update one of the internal properties of the panel that draws the footer cells.
private void gridView_CellLoaded(object sender, CellEventArgs e)
{
    if (e.Cell is GridViewFooterCell)
    {
        var row = e.Cell.ParentRow;
        Dispatcher.BeginInvoke(new Action(() =>
        {
            var aggregatesList = row.ChildrenOfType<AggregateResultsList>(); // the exact type of children that should be used to get the new height may vary based on your column Footer contents
            if (aggregatesList.Count() > 0)
            {
                var height = aggregatesList.Max(x => x.ActualHeight);

                var cellsPanel = e.Cell.ParentOfType<GridViewCellsPanel>();
                PropertyInfo minRowHeightProp = cellsPanel.GetType().GetProperty("MinRowHeight", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                object minRowHeightPair = minRowHeightProp.GetValue(cellsPanel);
                PropertyInfo heightProp = minRowHeightPair.GetType().GetProperty("Second");
                heightProp.SetValue(minRowHeightPair, height);
            }
        }));
    }
}

 

Declined
Last Updated: 25 Oct 2024 10:42 by ADMIN
When filtering with distinct values grouping - only one value is shown as result which is incorrect. 
Unplanned
Last Updated: 12 Aug 2024 15:01 by Stenly
Currently, the DistinctValuesDisplayMode="Tree" property of the columns supports only values of the type of DateTime and DateTime?, which the filtering control will display in a tree-like manner.

The DateOnly and DateOnly? types are not supported, however, we can try to add such support.