Dear Telerik team,
We currently have a problem with the RadDragAndDropManager as we are currently in the process of converting from Silverlight to WPF.
We are also converting Telerik from version 2011.2 to the current version of Telerik WPF.
Now the following error happens:
If I drag an item and drag it over another dropable area, the DragCue element moves.
The error occurs as soon as "e.QueryResult" is set to true in the OnDropQuery function.
You just have to do that, otherwise the drop will not be evaluated.
I was able to recreate the whole thing in a new project with just a RadTreeView and a RadMap.
I just don't want to switch the RadDragAndDropManager to the DragDropManager because we have a lot of our own controls that run with the old one, but not with the new one.
I've already tried that, but the conversion effort is just too big.
Can you see why the DragCue element is acting so weird?
With best regards
Markus Kuhlemann
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.
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.
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) ...
We have a RadTreeView. There is no horizontal scrollbar. We edit a node's header to a longer string and a horizontal scrollbar appears. If we edit again the node's header to a shorter string, the horizontal scrollbar remains even it isn't needed anymore. UPDATE: There is a similar problem with the height of a RadTreeViewItem. If we edit the RadTreeViewItem's content to become at least of two lines - the height of the item is increased, which is expected. But if we re-edit this item's content to be on one line only - the height of the item remains larger, which is incorrect. Please note, that this issue is observed ONLY on sub-items not on the parent nodes. This seems not reproducible with R3 2016 version of RadTreeView. Please open a new support ticket with details regarding this issue if you encounter it.
When the FlowDirection is RightToLeft, the vertical lines of the control aren't properly aligned. The issue is not reproducible with R3 2016 Release.
When value types are inserted in the Items collection of RadTreeView and root values are duplicated in the children a StackOverflowException is raised after a call to ExpandAll. The XAML has recently reviewed the status of this issue and won't be addressing it in future releases. This is a design limitation - RadTreeView does not support duplication of value types in its Items / ItemsSource collections. This potentially can cause troubles with virtualization / selection / expandALL features.
Setting the IsChecked via binding causes synchronization issue with CheckState during initial container creation. Declined. IsChecked and CheckState are not supported in binding scenarios. In databinding scenarios use the approach described here. http://www.telerik.com/help/wpf/radtreeview-howto-tri-state-mvvm.html
The TreeViewPanel doesn't display the TreeViewItems when the TreeView ItemsPresenter ControlTemplate element is wrapped in a Border or Grid control. Declined. Changing the default control template of our controls is risky, every template part has its purpose and usually it is used in code behind. We cannot support such template changes to not reflect the main features such as virtualization,scrolling, fast performance.
DataTriggers that apply DefaultImageSrc, ExpandedImageSrc don't work when the TreeView is virtualized. Reason for deletion: The workaround is easy - just bind the DefaultImageSrc, ExpandedImageSrc to string properties from the ViewModel. Also, a possible fix would slow down the virtualization process in the RadTreeView.
Improve the synchronization between the TreeView.IsOptionElementsEnabled with the TreeViewItem.OptionType property. In a scenario where the TreeViewItem.OptionType property is databound, changing the TreeView.IsOptionElementsEnabled property doesn't respect the databound values of the TreeViewItem.OptionType. === Reason for deletion: These proeprties are marked obsolete.
When TreeView is placed inside floating VS ToolWindow and item is selected the visual state remains unchanged after focus leaves the TreeView.
When the RadTreeView is virtualizaed, the images are not shown. This works when the tree is bound to collection of objects and the DefaultImageSource is bound. Reason for deletion: The workaround is easy - just bind the DefaultImageSrc, ExpandedImageSrc to string properties from the ViewModel. Also, a possible fix would slow down the virtualization process in the RadTreeView.
Items are lost after reexpanding when TreeView is Virutalized and items are set in XAML. Currently the TreeView does not support virtualization when using XAML items. Reason for Decline: Virtualization is not supported in non-databound treeviews.
When two equal objects are used in the source collection, the first is always selected when you try to select the others. Workaround when TreeView is not databound. Instead of adding objects directly in the TreeView's Items Collection, add RadTreeViewItems. For Example, instead of treeView.Items.Add(1), treeView.Items.Add(2) do treeView.Items.Add(new RadTreeViewItem(){Header = 1}, treeView.Items.Add(new RadTreeViewItem(){Header = 2} Workaround when TreeView is databound. For example , if we databind the treeview to collection of DataItems and some dataitem is located in multiple places in the source collection. Solution => Wrap the DataItem class in new class - DataItemWrapper. It can hold the underlying DataItem, add additional property (for exampel ID) and override the Equals and GetHashCode methods. This way different DataItemWrapper objects can hold equal DataItem objects. In such way if you bind the treeview to collection of DataItemWrappers the selection will be successful. DECLINED: The XAML team recently reviewed this bug and won't be adressing it in future. It can be actually considered as feature request because selection should have notion for selected containers. Unfortunately, the initial code design of the RadTreeView does not have such notion and the complexity of adding such feature now is very big.
The CheckedItems collection is not cleared when ItemsSource is changed. Please consider CheckedItems as not supported collection in RadTreeView. In DataBinding scenarios , use the approach described in the following article: http://docs.telerik.com/devtools/wpf/controls/radtreeview/how-to/howto-tri-state-mvvm.html This way you will be able to create CheckedItems property in your ViewModels. The XAML team has recently reviewed this issue and will not be addressing it as at this time the team is focusing on the bugs impacting the highest number of developers. If you have encountered this issue and it is blocking for your work please contact us through the support ticketing system with details on your setup and a reference to this item.
When the TreeView's ScrollViewer is Visible, changing the tree's width to 0 them back to Auto breaks the scrolling function of the ScrollViewer. The workaround is to make the TreeView Collapsed before setting the Width to 0 and make it Visible before setting the Width back to Auto. Reason for declination: The feedback item is declined due to duplication with the one below: http://feedback.telerik.com/Project/143/Feedback/Details/113789-treeviews-scrolling-does-not-work-if-the-trees-width-is-set-to-0-and-then-back Please follow it instead.
When this property is set to false the changes are not saved. Edit: We have reviewed this item and we can confirm this is by design and it is not bug. IsInEditMode serves only for opening / closing the edit mode of the RadTreeViewItem. The way to submit changes is to use CommitEdit() method.
Too many TreeViewItems are created internally when using virtualization. This causes the tree to consume large amount of space when performing virtualization intensive tasks like CollapseAll or ExpandAll. The XAML team recently reviewed this issue and will not be addressing it. On ExpandALL / CollapseALL virtualization creates / recycles / reuses containers - RadTreeViewItems. You cannot be sure when the GarbageCollector will free up the currently unused containers. Also after even number of invocations (ExpandAll + CollapseAll), the containers that are not freed up from memory is not increasing - it is constant which means there is no memory leak to worry for.