Hi.
I'm facing and issue with displaying hierarchical data (self-referencing) in grid when missing parent items in data source - only part of data is displayed.
1. Add grid to form
1.var grid = new RadGridView {Dock = DockStyle.Fill};2.this.Controls.Add(grid);3.grid.Columns.Add("cName","Name","Name"); //Dummy column displaying Name
2. Setup self-referencing
1.var col1 = new GridViewTextBoxColumn("hiddenColumnId", "Id");2.var col2 = new GridViewTextBoxColumn("hiddenColumnParentId", "ParentId");3.grid.MasterTemplate.Columns.Add(col1);4.grid.MasterTemplate.Columns.Add(col2);5.grid.Columns["hiddenColumnId"].IsVisible = false;6.grid.Columns["hiddenColumnParentId"].IsVisible = false;7.grid.Relations.AddSelfReference(grid.MasterTemplate, "hiddenColumnId", "hiddenColumnParentId");
3. Create dummy data type
01.class Item02.{03. public Item(int id, string name, int? parentId = null)04. {05. Id = id;06. Name = name;07. ParentId = parentId;08. }09. 10. public int Id { get; set; }11. public string Name { get; set; }12. public int? ParentId { get; set; }13.}
4. Add new data source
01.var items = new List<Item>02.{03. new Item(1,"1"),04. new Item(2,"1.1",1),05. new Item(3,"1.2",1),06. new Item(7,"1.2.1",3),07. new Item(4,"2"),08. new Item(5,"2.1",4),09. new Item(6,"2.2",4)10.};11.grid.DataSource = items;
And as expected a correct tree structure is displayed
1.12.-1.13.-1.24.--1.2.15.26.-2.17.-2.2
However in my case due to busines logic I have only a subset of data - all except item "1" and "2".
Instead of ex
1.1.12.1.23.-1.2.14.2.15.2.2
I can see only children of first missing parent item. Although the number of rows is matching correct total number of item to be displayed (5) only part of items are visible (3).
1.1.12.1.23.-1.2.1
As a workaroud I can modify data source and remove parent assignement from objects if parent is missing in data source either on data preparation or DataBindingComplete event.
01.private void Grid_DataBindingComplete(object sender, GridViewBindingCompleteEventArgs e)02. {03. var grid = sender as RadGridView;04. 05. // Get existing items06. var ids = new List<object>();07. foreach (var id in grid.Columns["hiddenColumnId"].DistinctValues)08. {09. ids.Add(id);10. }11. 12. // Remove missing parents13. foreach (var row in grid.Rows)14. {15. var parentId = row.Cells["hiddenColumnParentId"].Value;16. if (!ids.Contains(parentId))17. row.Cells["hiddenColumnParentId"].Value = null;18. }19.}
However this solution is not suitable, because it is modifying data providing inconsistant state - using that data in code I may falsly assume that the item does not have a parent while it has.
Any ideas how to solve this issue?
Regargs
Greg
Hi
I refer to the aritcle "How to Change PageViewMode for the Nested Levels in RadGridView - Telerik UI for WinForms"
I have a setting implemented that is like in the article.
It is working but has a flaw:
When an entry of the second tier is expanded and I then collapse the corresponding entry in the first tier and re-expand it, I get an NullReferenceException coming out of Telerik code:
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei Telerik.WinControls.UI.RowsContainerElement.UpdateMergeCells(GridCellElement cellElement) bei Telerik.WinControls.UI.RowsContainerElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeViewElement(RectangleF viewElementRect) bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.RadPageViewElementBase.ArrangeChildren(SizeF finalSize) bei Telerik.WinControls.UI.RadPageViewElementBase.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.ArrangeContent(RectangleF clientRect) bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.PerformArrange(RectangleF clientRect) bei Telerik.WinControls.UI.RadPageViewElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.LightVisualElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.GridDetailViewRowElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.VirtualizedStackContainer`1.ArrangeElementCore(RadElement element, SizeF finalSize, RectangleF arrangeRect) bei Telerik.WinControls.UI.VirtualizedStackContainer`1.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.UI.ScrollableRowsContainerElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.RowsContainerElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeViewElement(RectangleF viewElementRect) bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.RadPageViewElementBase.ArrangeChildren(SizeF finalSize) bei Telerik.WinControls.UI.RadPageViewElementBase.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.ArrangeContent(RectangleF clientRect) bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.PerformArrange(RectangleF clientRect) bei Telerik.WinControls.UI.RadPageViewElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.LightVisualElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.GridDetailViewRowElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.VirtualizedStackContainer`1.ArrangeElementCore(RadElement element, SizeF finalSize, RectangleF arrangeRect) bei Telerik.WinControls.UI.VirtualizedStackContainer`1.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.UI.ScrollableRowsContainerElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.RowsContainerElement.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeViewElement(RectangleF viewElementRect) bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeOverride(SizeF finalSize) bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect) bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect) bei Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayout() bei Telerik.WinControls.UI.GridTableElement.UpdateOnRowExpandedCore(GridViewRowInfo row) bei Telerik.WinControls.UI.GridTableElement.UpdateOnRowExpanded(GridViewRowInfo row) bei Telerik.WinControls.UI.GridTableElement.UpdateOnRowPropertyChanged(GridViewRowInfo row, GridPropertyChangedEventArgs e) bei Telerik.WinControls.UI.GridTableElement.ProcessRowEvent(GridViewRowInfo row, GridViewEvent eventData) bei Telerik.WinControls.UI.GridTableElement.Telerik.WinControls.UI.IGridViewEventListener.ProcessEvent(GridViewEvent eventData) bei Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessCollection(GridViewEvent gridEvent, PriorityWeakReferenceList list, GridEventProcessMode processMode) bei Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessEvent(GridViewEvent gridEvent) bei Telerik.WinControls.UI.GridViewSynchronizationService.NotifyListeners(GridViewEvent gridEvent) bei Telerik.WinControls.UI.GridViewSynchronizationService.FlushEvents() bei Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewEvent gridEvent) bei Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewTemplate template, GridViewEvent eventData, Boolean postUI) bei Telerik.WinControls.UI.GridViewRowInfo.DispatchEvent(KnownEvents id, GridEventType type, GridEventDispatchMode dispatchMode, Object originator, Object[] arguments) bei Telerik.WinControls.UI.GridViewRowInfo.OnPropertyChanged(PropertyChangedEventArgs args) bei Telerik.WinControls.UI.GridViewDataRowInfo.OnPropertyChanged(PropertyChangedEventArgs e) bei Telerik.WinControls.UI.GridViewHierarchyRowInfo.OnPropertyChanged(PropertyChangedEventArgs e) bei Telerik.WinControls.UI.GridViewRowInfo.SetBooleanProperty(String propertyName, Int32 propertyKey, Boolean value) bei Telerik.WinControls.UI.GridViewRowInfo.set_IsExpanded(Boolean value) bei Telerik.WinControls.UI.GridGroupExpanderCellElement.expander_RadPropertyChanged(Object sender, RadPropertyChangedEventArgs e) bei Telerik.WinControls.RadPropertyChangedEventHandler.Invoke(Object sender, RadPropertyChangedEventArgs e) bei Telerik.WinControls.RadObject.OnPropertyChanged(RadPropertyChangedEventArgs e) bei Telerik.WinControls.RadElement.OnPropertyChanged(RadPropertyChangedEventArgs e) bei Telerik.WinControls.VisualElement.OnPropertyChanged(RadPropertyChangedEventArgs e) bei Telerik.WinControls.RadComponentElement.OnPropertyChanged(RadPropertyChangedEventArgs e) bei Telerik.WinControls.RadItem.OnPropertyChanged(RadPropertyChangedEventArgs e) bei Telerik.WinControls.UI.UIItemBase.OnPropertyChanged(RadPropertyChangedEventArgs e) bei Telerik.WinControls.UI.LightVisualElement.OnPropertyChanged(RadPropertyChangedEventArgs e) bei Telerik.WinControls.UI.ExpanderItem.OnPropertyChanged(RadPropertyChangedEventArgs e) bei Telerik.WinControls.RadObject.RaisePropertyNotifications(RadPropertyValue propVal, Object oldValue, Object newValue, ValueSource oldSource) bei Telerik.WinControls.RadObject.SetValueCore(RadPropertyValue propVal, Object propModifier, Object newValue, ValueSource source) bei Telerik.WinControls.RadElement.SetValueCore(RadPropertyValue propVal, Object propModifier, Object newValue, ValueSource source) bei Telerik.WinControls.UI.ExpanderItem.set_Expanded(Boolean value) bei Telerik.WinControls.UI.GridExpanderItem.set_Expanded(Boolean value) bei Telerik.WinControls.UI.ExpanderItem.ToggleExpanded() bei Telerik.WinControls.UI.ExpanderItem.OnMouseUp(MouseEventArgs e) bei Telerik.WinControls.RadElement.OnCLREventsRise(RoutedEventArgs args) bei Telerik.WinControls.RadElement.OnBubbleEvent(RadElement sender, RoutedEventArgs args) bei Telerik.WinControls.RadElement.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args) bei Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args) bei Telerik.WinControls.RadElement.RaiseRoutedEvent(RadElement sender, RoutedEventArgs args) bei Telerik.WinControls.RadElement.DoMouseUp(MouseEventArgs e) bei Telerik.WinControls.ComponentInputBehavior.OnMouseUp(MouseEventArgs e) bei Telerik.WinControls.RadControl.OnMouseUp(MouseEventArgs e) bei Telerik.WinControls.UI.RadGridView.OnMouseUp(MouseEventArgs e) bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) bei System.Windows.Forms.Control.WndProc(Message& m) bei System.Windows.Forms.ScrollableControl.WndProc(Message& m) bei Telerik.WinControls.RadControl.WndProc(Message& m) bei Telerik.WinControls.UI.RadGridView.WndProc(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Hi,
I was previously developing with Telerik UI for WinForms 2025 Q3. Recently, I installed the latest version (2025 Q4) using the MSI installer and then manually updated the NuGet packages in my project to complete the upgrade without using the Update Wizard. Everything works fine now.
However, every time I open the project in Visual Studio, I still see the notification:
"You are using an older version of Telerik UI for WinForms for this project. There is a new version available for this computer. Update Now"
Is there a way to disable or hide this notification after manually updating the NuGet packages?
Thanks in advance!

¡Hi everyone! Is there a possibility to have a RadContexMenu with rounded corners ?
I already change the styles via theme, but when I open the context menu, it has some white square corners behind.
The version I have right now is 2016 SP1

Our application doesn't explicitly set a default theme so it defaults to ControlDefault.
One screen uses the MaterialBlueGrey theme, so I wanted the related MessageBoxes to also use that theme.
Per the instructions I used the following code:
RadMessageBox.SetThemeName("MaterialBlueGrey");
RadMessageBox.Show("MESSAGE");
RadMessageBox.SetThemeName("ControlDefault");The problem is that, although the overall look goes back to the default theme, some elements stay with the MaterialBlueGrey theme. For example: the button height & caption font.
I tried all these with the same result:
RadMessageBox.SetThemeName("");
RadMessageBox.ThemeName = "";
RadMessageBox.ThemeName = "ControlDefault";
I have a situation where I have code that executes when the Selected Node is changed.
SelectedNodeChanged
The code in the SelectedNodeChange adds controls to some FlowLayoutPanel.
When a user clicks on a node, you can see the controls being added to the control
but the RadTreeView allows the user to select another node eventhough the SelectedNodeChange event has not finished, which
is now causing issues with the FlowLayoutPanelshowing duplicate controls.
If user waits until all controls are in the FlowLayoutPanel, and then selects another node, everything works as expected.
None of the code that adds the controls to the FlowLayoutPanel are Asynchronous.
I DO NOT have Multiselect = true.
** I have noticed that the RadTreeView acts as though it is Asynchronous when filling it. I have code that fills the nodes and you can select the nodes and see the nodes being added behind the scenes.
Maybe control is Asynchronous when changing selected nodes?

Hello, When I drag and drop an item in PageView, I would like it to create a copy of the item (page) when holding the Control key—either within the same PageView or between different PageViews. Could you help me achieve this? Thank you.

When using RadOpenFolderDialog, some people see their mapped drives and some do not. This includes people within my office would should all have their mapped drives created the same way.
Is there a way that I can ensure RadOpenFolderDialog always sees the mapped drives of the user?

Hello, I'm trying to display a chart by salesperson, grouped by month, showing the total sales amount. I've attached a photo. I've tried many things without success. Thank you for your time.