When using binding to CheckState property and TriStateMode is enabled the checking of parent (its business object) does not affect unrealized childrens' CheckState, because the bindings have greater priority than the TriState logic. Same in the other direction - checking the child has no effect over the parent. Marking this as Declined. TriState Mode is supported in XAML-defined or code behind defined trees with direct creation of 3Viewitems. In DataBound scenarios, 3-State should be created by the user with ViewModels as described in this help article. http://www.telerik.com/help/wpf/radtreeview-howto-tri-state-mvvm.html
Change the selection on MouseLeftButtonUp instead of MouseLeftButtonDown.
Add a possibility to disable selection of RadTreeViewItem.
Support CommandBindings. The item is Completed => RadTreeViewitem is ICommnadSource since 2011. RadTreeViewItem already has Command property, the command fires on mouse click.
Show tooltip when node (the Header of the RadTreeViewiItem) is clipped. You can check a possible implementation in this SDK sample: https://github.com/telerik/xaml-sdk/tree/master/TreeView/ShowTooltipWhenNodeIsClipped
a) Using WCF RIA Services b) Using QueryableDomainServiceCollectionView c) Using TreeView with above two d) Including LoadOnDemand e) Using "Prepared Item"
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.
Modify the SelectionChanged event logic so that the event is only fired once - exposing both the RemovedItems and AddedItems collections.
Improve selection performance.
Ability to validate if there are selected,checked, expanded items, if a node has items
Expose IsDropBeforeAllowed, IsDropAfterAllowed and IsDropInsideAllowed properties in order to facilitate the implementation of complicated drag/drop scenarios in MVVM scenarios. Update: The suggested approach would be to use an attached behavior for DragDropManager.DragOverEvent in order to change the default TreeView behavior. DropAction property of a TreeViewDragDropOptions instance could be used to customize the drop operation. Also, the DropPosition property of the TreeViewDragDropOptions instance could be used to check current drop case. An instace of TreeViewDragDropOptions could be retreived from DragOverEvent event arguments.
Allow cancelling a drag operation originating from certain items - basically the customers need to disable the drag operation on some items. ==== Here is a possible solution with handling DragInitialize DragDropManager.AddDragInitializeHandler(this.tree, this.OnDragInitialize, true); private void OnDragInit(object sender, DragInitializeEventArgs e) { if (((e.OriginalSource as RadTreeViewItem).Header == "B1") { e.Data = null; e.DragVisual = null; }
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.
When you tab through your application you can observe that when the focus moves to the TreeView it will focus the first TreeViewItem. However, when you change the ItemsSource collection of the TreeView at run-time you won't be able to tab through the TreeView or its first TreeViewItem at all. Fixed in LIB version: 2014.2.0915
Support DragCue and vertical PreviewDropLine when TreeView renders its items horizontally
Ability to have both static and bound RadTreeViewItems or different hierarchy levels. Reason for decline: There is no proper way this to be implemented. This would require huge refactoring of the DragDrop, Styling, Editing, Virtualization logic. Complexity of such task is close to writing a new control from scratch.
Change the SelectedValue implementation to allow a TwoWay binding
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.
ExpandAll() is a UI operation which blocks the UI thread.