Completed
Last Updated: 02 Apr 2021 05:13 by ADMIN
Release LIB 2021.1.405 (5/04/2021)
Currently, when setting ShowToolTipOnTrimmedText, the duration of the displayed tooltip is hardcoded to 5 seconds. Add an API to change the duration.
Completed
Last Updated: 21 May 2021 10:19 by ADMIN
Release LIB 2021.2.525 (25/05/2021)
When only single cells have been selected and the grid is sorted/grouped, the selection of these cells is cleared. However, the SelectedCellsChanged event is not fired.
Completed
Last Updated: 31 May 2021 11:37 by ADMIN
Release R2 2021 SP1

Hi,

as you can see in the screenshot below the new dark Material Theme has the bug, that the selected row is white if it's not focused.

I can not find in the code where this white color comes from.

I encountered it only in the GridView and TreeListView yet.

Also I can say, that it wasn't like that before the new update. I made my own dark material theme and it didn't appear like this before.

 

Greetings Benedikt

 

Completed
Last Updated: 28 Jan 2022 09:28 by ADMIN
Release LIB 2022.1.131 (31 Jan 2022)
Created by: Martin Ivanov
Comments: 0
Category: GridView
Type: Feature Request
0

Calling the BeginInsert() method of RadGridView, adds a new row at the bottom of the items and scrolls to the newly added row. However, if the vertical scrollbar is not visible and the newly added row makes the viewport so big that the scrollbar should display, the row gets clipped. Also, the vertical scrollbar that was just added is not scrolled to the bottom, which is actually why the row is clipped. Each next insert (after the scrollbar gets visible) will display the added row properly.

To work this around, you can scroll the vertical scrollbar manually to bottom. 

private void BeginInsertRow()
{
	var scrollViewer = this.gridView.FindChildByType<GridViewScrollViewer>();
	bool requestScrollToBottom = false;
	if (scrollViewer.ComputedVerticalScrollBarVisibility == Visibility.Collapsed)
	{
		var panel = this.gridView.FindChildByType<GridViewVirtualizingPanel>();
		var sumHeight = (source.Count + 1) * this.gridView.RowHeight;                
		requestScrollToBottom = sumHeight > panel.ActualHeight;                
	}
	this.gridView.BeginInsert();

	if (requestScrollToBottom)
	{
		scrollViewer.ScrollToBottom();
	}            
}

Completed
Last Updated: 15 Feb 2022 07:43 by ADMIN
Release R1 2022 SP1
The Search As You Type feature of the RadGridView control, with the VisualStudio2019 theme and the Dark color variation applied, causes the highlighted text to be hard to read.
Declined
Last Updated: 31 Mar 2022 11:13 by ADMIN
Created by: LindenauAtSOG
Comments: 7
Category: GridView
Type: Bug Report
0

 

When selecting a Cell using the Mouse, the BorderColor is different to when navigating via ArrowKeys.

Also it seems that the Property IsSynchronizedWithCurrentItem does not work correctly when using ArrowKeys.

The issue with the Color can be observed in the Demo

Completed
Last Updated: 21 Mar 2022 14:38 by ADMIN
Release LIB 2022.1.328 (28 March 2022)
The content of the GroupHeaderRow shows the value of the DataMemberBinding instead of the value of the DisplayMemberPath.
Completed
Last Updated: 26 May 2022 06:15 by ADMIN
Release LIB 2022.2.530 (30 May 2022)

Hi

I have a grid where some rows contain child rows.  In order to control which rows have the "+" expander icon I use the IsExpandableBinding property.  I also have a toolbar which contains a convenience button to collapse all the expanded rows.

This button is bound to a handler which called RasGridView.CollapseAllHierarchyItems(), but this does not have any effect.  I've tried removing the IsExpandableBinding property, and the collapse mechanism then works (but I get unwanted expanders on every row).

 

Won't Fix
Last Updated: 04 Apr 2022 12:38 by ADMIN

Hi,

I am currently having issues with RadGridView's group footer: I am trying to add a button to the footer template which is supposed to trigger a command which in turn needs some info on the group it was triggered from*.

Since (unlike the header) there does not seem to be any info on the group available directly within the GroupFooterTemplate, I am pulling the group info from the parent GridViewGroupFooterRow:

                <telerik:GridViewDataColumn [...]>
                    <telerik:GridViewColumn.GroupFooterTemplate>
                        <DataTemplate>
                            <Button Command="{Binding DataContext.ShowFooterGroupCommand, RelativeSource={RelativeSource AncestorType=telerik:RadGridView}}"
                                    CommandParameter="{Binding Group.Key, RelativeSource={RelativeSource AncestorType=telerik:GridViewGroupFooterRow}}" />
                        </DataTemplate>
                    </telerik:GridViewColumn.GroupFooterTemplate>
                </telerik:GridViewDataColumn>

This is working great as long as the RadGridView does not use Row virtualization. However, when I turn on Row virtualization and scroll around for a bit, the value I get passed as the CommandParameter is more or less random and has nothing to do with the group my button is actually located in.

I attached a small example project (.Net 6 but our app uses 4.8 so I set that as the Framework below) for you to try it yourself. Just scroll around and click the buttons while watching the debug output window. You will see that the groups in the output window will not match the group where you actually clicked the button after some scrolling.

Expected Behavior

Even when virtualizing, the Group key returned when binding to GridViewGroupFooterRow.Group(.Key) should reliably return the key of the actual group my button is placed in. It would be even better if it was somehow possible to get the group directly, without having to resort to FindAncestor.

Regards
Simon Müller
Hofmann Fördertechnik GmbH

 

* Basically I am trying to give the user a possibility to add new items to the individual groups and I don't want to add the button to the group header since that makes it too easy to accidentally hit the header's RadToggleButton, collapsing the group.

Completed
Last Updated: 17 May 2022 14:55 by ADMIN
Release LIB 2022.2.523 (23 May2022)

The SelectedCells collection of RadGridView contains wrong cells in a scenario where the previous selection is cleared and then its items are filtered out of the view. This reproduces with SelectionMode set to Extended and SelectionUnit set to Mixed.

This happens if you call gridView.SelectedItems.Clear() or gridView.UnselectAll(). You can work around the issue if you clear the SelectedCells. To do so, call also gridView.SelectedCells.Clear().
gridView.SelectedCells.Clear();

Completed
Last Updated: 17 May 2022 15:09 by ADMIN
Release LIB 2022.2.523 (23 May 2022)

The issue appears when you have two adjacent columns - one resizable on the left and one not-resizable (IsResizing=False) on the right. If you hide the left column (IsVisible=False), the resize handle of the right column is still there and it can be used to resize it. 

To work this around, you can remove the next column and add it again in the Columns collection, after you hide the previous column.

this.gridView.Columns[1].IsVisible ^= true;            
var nextColumn = this.gridView.Columns[2];
this.gridView.Columns.Remove(nextColumn);
this.gridView.Columns.Add(nextColumn);

Duplicated
Last Updated: 18 May 2022 09:17 by ADMIN

RadGridView throws error 'DataGrid_DisplayIndexOutOfRange Parameter name: displayIndex'

when SelectionUnit is set to Mixed

 

SelectionUnit = "FullRow" and SelectionUnit="Cell" works fine.

Please find attached solution for crash.

Telerik version which we are using is UI for WPF 2021

In attached demo from list of data Select any item and click on isolate button above or apply filter from column filter dialog. it throws this error

 

 

   at Telerik.Windows.Controls.GridView.GridViewDataControl.ColumnFromDisplayIndex(Int32 displayIndex)
   at Telerik.Windows.Controls.GridView.Selection.CellInfoCollection.GetColumnForLocation(CellLocation location)
   at Telerik.Windows.Controls.GridView.Selection.CellInfoCollection.CreateCellInfo(CellLocation location)
   at Telerik.Windows.Controls.GridView.Selection.CellInfoCollection.CellRegionEnumerator.GetCurrentCell()
   at Telerik.Windows.Controls.GridView.Selection.CellInfoCollection.CellRegionEnumerator.MoveNext()
   at Telerik.Windows.Controls.GridView.Selection.CellInfoCollection.CellInfoCollectionEnumerator.MoveNext()
   at Telerik.Windows.Controls.GridView.Selection.ContainerFromItemCellSelectionStateChanger.UpdateCellSelectionState(CellInfoCollection cells, Boolean isSelected)
   at Telerik.Windows.Controls.GridView.Selection.CellSelectionHandler.EndAllowedSelection()
   at Telerik.Windows.Controls.GridView.Selection.CellSelectionHandler.EndPendingSelection()
   at Telerik.Windows.Controls.GridView.Selection.CellSelectionHandler.EndSelection()
   at Telerik.Windows.Controls.GridView.CellSelectionChange.Dispose()
   at Telerik.Windows.Controls.GridView.Selection.CompositeSelectionHandler.OnOwnerItemsCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Controls.GridView.Selection.CompositeSelectionHandler.OnOwnerItemsCollectionChangedDispatch(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Data.DataItemCollection.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Data.DataItemCollection.OnCollectionViewCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Data.Listener`2.ReceiveWeakEvent(Object sender, TArgs args)
   at Telerik.Windows.Data.WeakEvent.WeakListener`1.Handler(Object sender, TArgs args)
   at Telerik.Windows.Data.QueryableCollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   at Telerik.Windows.Data.QueryableCollectionView.RefreshOverride()
   at Telerik.Windows.Data.QueryableCollectionView.RefreshOrDefer()
   at Telerik.Windows.Data.QueryableCollectionView.InvalidatePagingAndRefresh()
   at Telerik.Windows.Data.QueryableCollectionView.OnFilterDescriptorsChanged()
   at Telerik.Windows.Data.QueryableCollectionView.OnFilterDescriptorsCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Data.RadObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Data.ObservableItemCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Data.RadObservableCollection`1.RaiseCollectionChangedOnResume()
   at Telerik.Windows.Data.RadObservableCollection`1.ResumeNotifications()
   at Telerik.Windows.Data.CollectionHelper.Reset(IEnumerable source, IList target, Func`2 itemConverter)
   at Telerik.Windows.Data.ObservableCollectionManager.HandleCollectionChanged(IList sender, NotifyCollectionChangedEventArgs args)
   at Telerik.Windows.Data.ObservableCollectionManager.Telerik.Windows.Data.IWeakEventListener<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.ReceiveWeakEvent(Object sender, NotifyCollectionChangedEventArgs args)
   at Telerik.Windows.Data.WeakEvent.WeakListener`1.Handler(Object sender, TArgs args)
   at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Data.RadObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Data.ObservableItemCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Data.RadObservableCollection`1.RaiseCollectionChangedOnResume()
   at Telerik.Windows.Data.RadObservableCollection`1.ResumeNotifications()
   at IsolateCrash.MainWindow.Button_Click(Object sender, RoutedEventArgs e) in D:\Projects\IsolateCrash\MainWindow.xaml.cs:line 48
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.Primitives.ButtonBase.OnClick()
   at System.Windows.Controls.Button.OnClick()
   at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at IsolateCrash.App.Main()

 

Completed
Last Updated: 06 Jun 2022 12:28 by ADMIN
Release LIB 2022.2.606 (6 Jun 2022)

Currently, to modify the background color of this element, the default control template of the GridViewCell element needs to be extracted, and the VisualState with x:Name="Highlighted" would need to be customized.

We could include an API for modifying the background color of the HighlightTextBlock element, when it is highlighted.

Completed
Last Updated: 23 May 2022 08:35 by ADMIN
Release LIB 2022.2.530 (30 May 2022)
ArgumentOutOfRangeException with the following message is thrown: 'DataGrid_DisplayIndexOutOfRange
Parameter name: displayIndex'

The error appears when the SelectionUnit is Mixed and when you select a row, and then filter the data so that the selected row is in the filtered results. 

To work this around, clear the selection before applying the filters and restore it after this.
Completed
Last Updated: 24 May 2023 06:56 by ADMIN
Release R2 2023
The functionality of the Search As You Type feature could be extended so that values of the type string can be filtered by the IsEqualTo operator, rather than the Contains one.
Completed
Last Updated: 27 Jun 2022 06:15 by ADMIN
Release LIB 2022.2.627 (27 June 2022)

Some of the rows of the RadGridView control are missing, when placed inside a RadPane and one of the newer themes is set via StyleManager.

As a workaround, set the UseLayoutRounding property of the RadGridView control to False.

Unplanned
Last Updated: 22 Jun 2022 10:31 by Martin Ivanov
Currently, the elements in the row details are measured with infinity size. This means that if you want to limit the content within the available space of the row, you will need to set the Width of the content manually. Add a mechanism that allows you to alter this behavior and measure the child content with the available space.
Completed
Last Updated: 07 Jul 2022 07:18 by ADMIN
Release LIB 2022.2.711 (11 July 2022)
Created by: Martin Ivanov
Comments: 0
Category: GridView
Type: Bug Report
0

The GridView allows you to drag-to-reorder its columns. When start dragging the clicked element is accessed and a screenshot is made from it. Then the drag visual shows an image of the dragged column header. In some cases the drag visual gets clipped.

To work this around, you can subscribe the GridViewHeaderCell elements to the DragDropManager's DragInitialize event and replace the default drag visual with a custom one.

private void RadGridView_CellLoaded(object sender, Telerik.Windows.Controls.GridView.CellEventArgs e)
{
	if (e.Cell is GridViewHeaderCell)
	{
		Dispatcher.BeginInvoke(new Action(() =>
		{
			DragDropManager.AddDragInitializeHandler(e.Cell, OnHeaderCellDragInitialize, true);
		}));
	}
}

private void RadGridView_CellUnloaded(object sender, Telerik.Windows.Controls.GridView.CellEventArgs e)
{
	if (e.Cell is GridViewHeaderCell)
	{
		Dispatcher.BeginInvoke(new Action(() =>
		{
			DragDropManager.RemoveDragInitializeHandler(e.Cell, OnHeaderCellDragInitialize);
		}));
	}
}

private void OnHeaderCellDragInitialize(object sender, DragInitializeEventArgs e)
{
	var dragSource = e.OriginalSource as GridViewHeaderCell;
	if (dragSource != null)
	{
		var dragVisual = new Border()
		{
			BorderBrush = Brushes.LightGray,
			BorderThickness = new Thickness(1),
			Background = new SolidColorBrush(Colors.Bisque) { Opacity = 0.4 },
			Width = dragSource.ActualWidth,
			Height = dragSource.ActualHeight,
			Child = new TextBlock() 
			{ 
				Text = (string)dragSource.Column.Header,
				Margin = new Thickness(5, 0, 5, 0), 
				VerticalAlignment = VerticalAlignment.Center }
		};
		e.DragVisual = dragVisual;
	}
}

Completed
Last Updated: 08 Jul 2022 15:31 by ADMIN
Release LIB 2022.2.711 (11 July 2022)
NullReferenceException is thrown when you open the FilteringControl of a RadGridView column.
Unplanned
Last Updated: 21 Jul 2022 07:41 by ADMIN
Created by: Christopher
Comments: 1
Category: GridView
Type: Feature Request
0
We are using telerik:RadGridView.RowDetailsTemplate in our GridView and we need the ability to expand or contract all rows at the press of a button.  As in the demo code under Hierarchy, we need to do this from our ViewModel.  Can the IsExpandedBinding be implemented for this use case in addition to when using hierarchical data?