The items of the RadTreeView control do not behave correctly in a touch scenario when expanding/collapsing them.
A possible workaround for this behavior would be to set the TouchManager.ShouldSuspendMousePromotion attached property to True on the RadTreeView control instance.
RadTreeView with virtualization turned on, defines HierarchicalDataTemplates for its items.
In the template, the root panel is 32 pixels (or higher than the default TreeViewItemHeight - 24 px in OfficeBlackTheme). Scrolling the treeview, then maximizing the wpf window results in misplaced / incorrect height of treeviewitems.
Possible workaround:
Set the MinHeight property of RadTreeViewItem so that all its header content fits. Then set the item's VerticalContentAlignment to Stretch
<Style TargetType="telerik:RadTreeViewItem">
<Setter Property="MinHeight" Value="48" />
<Setter Property="VerticalContentAlignment" Value="Stretch" />
</Style>
Also following settings might help:
- setting fixed width/height of the RadTreeView
- setting ChildDefaultLength to 48 of every TreeviewPanel:
<telerik:RadTreeView.ItemsPanel>
<ItemsPanelTemplate>
<telerik:TreeViewPanel ChildDefaultLength="48" />
</ItemsPanelTemplate>
</telerik:RadTreeView.ItemsPanel>
<Style x:Key="ItemContainerStyle" TargetType="{x:Type telerik:RadTreeViewItem}">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<telerik:TreeViewPanel ChildDefaultLength="48" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
Currently, in Extended SelectionMode, RadTreeView selects multiple Items with Shift + Click selection only if there is another RadTreeViewItem already selected with mouse. Other controls like RadListBox, RadGridView hold reference to the business object which should be the start (the target) of the multiselection. RadTreeView holds such reference with weak reference to the container (RadTreeViewItem) and only if this container is selected with Mouse. Adding such method (SetSelectionAnchor) in RadTreeView will help users better control the multiselection process.
When you reorder the collection very fast an exception is thrown. This is reproducible when the UI virtualization is enabled with its virtualization mode set to Recycling, and an item is selected. Also, you can observe some missing items glitches instead of the exception. To reproduce this you can call the ObservableCollection's Move() method several times in a single method (see the attached project). In this case also a NullReferenceException is thrown sometimes instead of the InvalidOperationException. To work this around delay the reordering calls so that the treeview has time to properly measure and arrange itself. For example: Items.Move(10, 2); Application.Current.Dispatcher.BeginInvoke(new Action(() => { Items.Move(10, 2); }), System.Windows.Threading.DispatcherPriority.Background);
System.Windows.Media.Animation Warning is apparent during DragDrop in the TreeView in WPF.
The built-in drag drop mechanism works with the containers of the items and makes a snapshot of them for the DragVisual. Thus, dragging multiple selected items that are not present in the viewport is not possible.
The scroll position resets when the measure of the treeview panel is fired for some reason. For example, when the RadTreeView is placed inside a RadPanelBarItem and the RadPanelBar's ScrollViewer is disabled, resizing the RadPanelBar resets the RadTreeView scroll position.
When expanding all items with a horizontal scrollbar the last item is hidden by the scrollbar. As a workaround, you can set the IsVirtualizing property of the RadTreeView to True.
Generated item cache is not cleared properly. This leads to memory leaking when items are virtualized and realized. As a workaround you can set the IsVisualCacheEnabled property of the TreeViewPanel to False. Note that this will work only in Recycling VirtualizationMode. <telerik:RadTreeView.ItemsPanel> <ItemsPanelTemplate> <telerik:TreeViewPanel IsVisualCacheEnabled="False" /> </ItemsPanelTemplate> </telerik:RadTreeView.ItemsPanel>
Support DragCue and vertical PreviewDropLine when TreeView renders its items horizontally
Like in Windows, ability to select multiple items with rectangle created with mouse
This will solve scenarios in which user wants to add new items somewhere (inner level, outside the ViewPort ) in virtualized treeview and then wants to begin edit these items (or focus them , select them). There is currently no mechanism to detect when the new items are ready (measured / completely generated), ItemsPrepared for example passes before the OnApplyTemplate of the RadTreeViewItem.
Provide support for HierarchyId data type.
Ability to validate if there are selected,checked, expanded items, if a node has items
BringIntoView and GetItemByPath are slow on trees with many nested levels (20-30). In Q2 2014 these methods will be faster in scenarios with TreeView Lines.
Change the SelectedValue implementation to allow a TwoWay binding
RadTreeView is virtualized and SelectionMode is set to "Extended". All ViewModels are selected and IsSelected of TreeViewitems is 2-way bound to IsSelected in the ViewModels. When clicking a TreeViewitem with Mouse, all other items are deselected. However, when scrolling we see that items are being prepared are not deselected - they are still selected. This is due to a Limitation of the Virtualization mechanism - it does not know about the existance of the ViewModels and does not work with them. Virtualization works only with the Containers - the RadTreeViewItem.
Collapse a RadTreeViewItem when all its children are dragged elsewhere. This is needed in scenarios where the RadTreeViewItem DefaultImageSrc and ExpandedImageSrc properties are set, and you want to revert back to the DefaultImageSrc once all children of the item are dragged to other positions.