When a large number of items are selected through extended selection (with a lot of items on the first level of the RadTreeView) the selection does not work correctly.
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.
This behavior is reproducible when we have applied Material theme and we have disabled the selection and drag of a RadTreeViewItem. A possible workaround is to set the MaterialAssist.CheckedBrush attached property to Null of the RadTreeViewItem which you don't want to select and drag. xmlns:material="clr-namespace:Telerik.Windows.Controls.MaterialControls;assembly=Telerik.Windows.Controls" <telerik:RadTreeViewItem Header="RootItem" material:MaterialAssist.CheckedBrush="{x:Null}" />
Add a possibility to disable selection of RadTreeViewItem.
Setting the HeaderStringFormat of RadTreeViewItem does not format the Header. As a workaround, HeaderTemplate of RadTreeViewItem could be set which has TextBlock with StringFormat property set on its Text Binding. <DataTemplate x:Key="template"> <TextBlock Text="{Binding ., StringFormat='Received ({0:N0})'}" /> </DataTemplate> Available in LIB version: 2016.3.1121
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.
with RadTreeView control,using MVVM binding,the xaml like : AutoScrollToSelectedItem="True" IsVirtualizing="False" looking the attach files,Navigate by the RadBreadcrumb(the RadBreadcrumb and the RadTreeView binding the same data source,and binding the same SelectedIem), when expand the level4,the RadTreeView can't bring the selected item to view,but scroll mouse to the seleced item view,then Navigate again the same postion ,it can scroll,the radtreeview can reach the selected item. I test the microsoft treeview,if the Virtualizing is true,it can't scroll the selected item,but set the Virtualizing to false,it is good. the other question,how to set the style?the selected item's highligh area can expand the full row,like the visual studio.
a) Using WCF RIA Services b) Using QueryableDomainServiceCollectionView c) Using TreeView with above two d) Including LoadOnDemand e) Using "Prepared Item"
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>
When sorting a table I get the following stacktrace. 06.12.2016 15:39:34 Error General Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. at System.Windows.Controls.ItemContainerGenerator.Remove(GeneratorPosition position, Int32 count, Boolean isRecycling) at Telerik.Windows.Controls.TreeView.TreeViewPanel.CleanupRange(IList children, IItemContainerGenerator generator, Int32 startIndex, Int32 count) at Telerik.Windows.Controls.TreeView.TreeViewPanel.CleanupContainers(Int32 firstViewport, ItemsControl itemsControl) at Telerik.Windows.Controls.TreeView.TreeViewPanel.MeasureOverride(Size constraint) at System.Windows.FrameworkElement.MeasureCore(Size availableSize) at System.Windows.UIElement.Measure(Size availableSize) at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint) at System.Windows.Controls.ItemsPresenter.MeasureOverride(Size constraint) at System.Windows.FrameworkElement.MeasureCore(Size availableSize) at System.Windows.UIElement.Measure(Size availableSize) at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV) at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean& hasDesiredSizeUChanged) at System.Windows.Controls.Grid.MeasureOverride(Size constraint) at System.Windows.FrameworkElement.MeasureCore(Size availableSize) at System.Windows.UIElement.Measure(Size availableSize) at System.Windows.Controls.Control.MeasureOverride(Size constraint) at Telerik.Windows.Controls.RadTreeViewItem.MeasureOverride(Size availableSize) at System.Windows.FrameworkElement.MeasureCore(Size availableSize) at System.Windows.UIElement.Measure(Size availableSize) at Telerik.Windows.Controls.TreeView.TreeViewPanel.MeasureOverride(Size constraint) at System.Windows.FrameworkElement.MeasureCore(Size availableSize) at System.Windows.UIElement.Measure(Size availableSize) at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint) at System.Windows.Controls.ItemsPresenter.MeasureOverride(Size constraint) at System.Windows.FrameworkElement.MeasureCore(Size availableSize) at System.Windows.UIElement.Measure(Size availableSize) at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV) at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean& hasDesiredSizeUChanged) ...
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.