This is a migrated thread and some comments may be shown as answers.

TreeView Drag and Drop Performance with many (200+) items selected

1 Answer 86 Views
TreeView
This is a migrated thread and some comments may be shown as answers.
Dano
Top achievements
Rank 1
Dano asked on 03 Jul 2018, 07:05 PM

Hello,

I am using the RadTreeView control to give the user a way to arrange and sequence many items, and all of its features have been great for customizing the various ways to interact with the items.  The issue I am currently having is when many items are selected for a drag and drop operation, sometimes upwards of 400 at a time, the drag is very slow to initialize, the drop preview becomes sluggish, and the drop operation itself takes several seconds to complete.  When selecting just a few items (under 30 or so..) there are no noticeable delays.

For my application specifically I use MVVM, and I must use Windows.Forms.Integration.ElementHost since I am plugging into a framework/environment that is not in my control. Both of these factor into performance, but even using the RadTreeView in a standalone WPF application the slowdowns can be observed.

Here is my instance of the treeview to give some context with the settings I am using:

<telerik:RadTreeView
             SelectionMode="Extended"
             IsDragDropEnabled="True"
             IsDragPreviewEnabled="False"
             IsDragTooltipEnabled="True"
             IsDropPreviewLineEnabled="False"
             IsEditable="True"
             Grid.IsSharedSizeScope="True"
             telerik:ScrollingSettingsBehavior.ScrollStep="40"
             telerik:ScrollingSettingsBehavior.ScrollStepTime="00:00:00.01"
             telerik:ScrollingSettingsBehavior.ScrollAreaPadding="40"
             telerik:AnimationManager.IsAnimationEnabled="False"
             IsVirtualizing="False"
             IsExpandOnDblClickEnabled="True">
 
 </telerik:RadTreeView>

 

Do you have any recommendations for what I can change to improve the experience when drag and drop is performed on so many items?

Thanks!

1 Answer, 1 is accepted

Sort by
0
Dinko | Tech Support Engineer
Telerik team
answered on 06 Jul 2018, 02:21 PM
Hello Dan,

Let first start with that the drag/drop mechanism of RadTreeView internally makes a snapshot of the containers of the control. When having the virtualization enabled (  IsVirtualizing="True") these containers would be only the ones present in the viewport. This is the by-design implementation of the control. This is a current limitation of this functionality.

From your code snippet, I can see that you have set the IsVirtualizing property to false. Setting this property to false will lead to expected behavior from the drag-drop functionality but is degrading the performance of the RadTreeView. There are logged feature request in our Feedback Portal where you can track its progress and vote for its implementation. At this moment I can't give you a solution which can be used to optimize this behavior.

Regards,
Dinko
Progress Telerik
Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
Tags
TreeView
Asked by
Dano
Top achievements
Rank 1
Answers by
Dinko | Tech Support Engineer
Telerik team
Share this question
or