Unplanned
Last Updated: 18 Oct 2024 15:10 by Martin Ivanov

One of the following two exceptions occur when the BindingOperations.EnableCollectionSynchronization() is used with the ItemsSource of RadTreeListView:

  • System.InvalidOperationException: 'Collection was modified; enumeration operation may not execute.'
  • System.NullReferenceException: 'Object reference not set to an instance of an object.'

When using the EnableCollectionSynchronization, the corresponding items control should allow updates of the ItemsSource collection on different threads. This is valid if the requirements to use the EnableCollectionSynchronization method are met.

The exception stack traces are:

InvalidOperationException
   at System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() in /_/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs:line 432
   at System.Collections.Generic.List`1.Enumerator.MoveNext() in /_/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/List.cs:line 1130
   at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
   at Telerik.Windows.Data.EnumerableExtensions.<SelectRecursive>d__15`1.MoveNext()
   at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
   at Telerik.Windows.Data.HierarchicalCollectionViewBase.PopulateInternalList(IQueryable view)
   at Telerik.Windows.Data.QueryableCollectionView.get_InternalList()
   at Telerik.Windows.Data.HierarchicalCollectionViewBase.get_InternalCount()
   at Telerik.Windows.Data.DataItemCollection.get_Item(Int32 index)
   at Telerik.Windows.Controls.GridView.Rows.GetRowItemsAtRange(Int32 startIndex, Int32 endIndex)
   at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.FlatLayoutStrategy.RealizeRows(Int32 startIndex, Int32 endIndex, Double& verticalOffset, HashSet`1& realizedRows)
   at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.FlatLayoutStrategy.MeasureOverride(Size availableSize)
   at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.MeasureOverride(Size availableSize)
--------------------------------------

NullReferenceException
   at Telerik.Windows.Data.QueryableCollectionView.InternalGetItemAt(Int32 index) in Telerik.Windows.Data\QueryableCollectionView.cs:line 3081
   at Telerik.Windows.Controls.GridView.Rows.GetRowItemsAtRange(Int32 startIndex, Int32 endIndex)
   at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.FlatLayoutStrategy.RealizeRows(Int32 startIndex, Int32 endIndex, Double& verticalOffset, HashSet`1& realizedRows)
   at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.FlatLayoutStrategy.MeasureOverride(Size availableSize)
   at Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.MeasureOverride(Size availableSize)

To work this around dispatch the updates of the ItemsSource collection to the main UI thread.

 Dispatcher.BeginInvoke(new Action(() =>
 {
    // add/remove items from the source collection
 }));

Unplanned
Last Updated: 01 May 2024 09:14 by Martin Ivanov

The horizontal scrollbar of RadTreeListView is displayed even the setup suggest that it should not be. For example, this happens if you have a single column with its Width set to * which means that the RadGridView should span in the available space without the need of displaying a horizontal scrollbar. To recreate this the RowIndicatorVisibility property should be set to Collapsed. Additional to that there should be a hierarchy and the items should be expanded.

To work this around, you can set a fixed Width for the column. If you want this to be dynamic you can calculate the width on SizeChanged of RadTreeListView

 

Unplanned
Last Updated: 08 Dec 2023 15:42 by Martin Ivanov

By default the AutoExpandItemsAfterFilter property of RadTreeListView is set to True, which means that when you filter the data, the parents of all found child items will be expanded automatically. However, if you call the CollapseAllHierarchyItems method this functionality stops working.

To work this around, you can reset the ItemsSource property instead of using the CollapseAllHierarchyItems.

 

Unplanned
Last Updated: 24 Apr 2023 09:01 by Martin Ivanov
The gray background that is shown when you hover an item is not hidden when the pointer leaves the item. That happens when you scroll on a touch device. 

To work this around, you can hide the pointer over background completely. To do this, you can edit the ControlTemplate of RadListView item and remove the Setter from the PointerOver Visual State.
Unplanned
Last Updated: 16 Jun 2022 13:26 by Martin Ivanov
Currently, the Shift + click action (when SelectionMode is Extended) selects only the expanded items. Any child items that are in the collapsed items collection of a node won't get selected.

Add a mechanism to allow this type of selection. It can be built-in or some events or method overrides can be introduceds in order to be bale to easily interfere and customize the extended selection.
Unplanned
Last Updated: 09 Dec 2021 09:20 by ADMIN
When dragging and dropping an item, to get the current item's place in the collection you would need to either use the underlying collection bound to the ItemsSource property or get it via reflection. Instead, change the ParentView and RootView properties of the HierarchicalChildCollectionView, to public, to not use the reflection approach. 
Unplanned
Last Updated: 24 Jun 2021 09:44 by ADMIN
If you move an item from one level to another into the tree, the indent of the corresponding row won't get updated. This is reproducible only if the new parent of the moved item is expanded, while the operation is executed.

Usually, this can be reproduced by calling the ExpandHierarchyItem() for the new parent item method just after the moving of the original item.

To resolve this you can delay the expanding of the item. Note that the expanding is executed manually by calling the ExpandHierarchyItem() method. So, you can use a dispatcher with a lower DispatcherPriority to delay this.

Or alternatively, you can collapse the item before expanding it (using the CollapseHierarchyItem() method).
Unplanned
Last Updated: 09 Nov 2020 14:01 by ADMIN
Created by: Vesa
Comments: 1
Category: TreeListView
Type: Feature Request
3
We have many use cases where we have multiple panels and we want a tree control (TreeListView or TreeView) to control the contents of the other panels based on selection. Because the selection always happens on MouseDown instead of MouseUp it is impossible to drag & drop items from the tree without changing the selection and thus the contents of the other panels.
Unplanned
Last Updated: 28 Feb 2020 14:53 by ADMIN
Created by: Dinko
Comments: 0
Category: TreeListView
Type: Feature Request
3
The control does not have a build-in expand/collapse animation. 
Unplanned
Last Updated: 19 Nov 2019 10:42 by ADMIN
Created by: Gonzalo
Comments: 0
Category: TreeListView
Type: Feature Request
2
Expose API to allow customizing the appearance of the tree lines.
Unplanned
Last Updated: 24 Oct 2019 11:37 by ADMIN
Add a mechanism that allows you to sort each child level separately. For example, by applying a different sort descriptor to each child hierarchical view collection.
Unplanned
Last Updated: 12 Jun 2019 11:01 by ADMIN
Created by: Andreas
Comments: 0
Category: TreeListView
Type: Feature Request
2
 
Unplanned
Last Updated: 26 May 2019 20:23 by Buks
Unplanned
Last Updated: 21 Jan 2019 10:46 by ADMIN
Research a possible way to improve the expanding performance of TreeListViewRow.
Unplanned
Last Updated: 14 Dec 2018 14:43 by ADMIN
Sometimes the cells from more than one row are copied even though the SelectionMode is Single. As a workaround, you can clear the SelectedCells collection of the control in the Copied event:
this.RadTreeListView.SelectedCells.Clear();


Unplanned
Last Updated: 06 Aug 2018 13:26 by Vladimir
Unplanned
Last Updated: 05 Jun 2018 13:37 by ADMIN
1 2