When using a RadListBox with a VirtualizingWrapPanel as ItemsPanel and the ScrollUnit is set to Pixel, the previously selected item stays like an overlay that can be interacted with if the ItemWidth and ItemHeight are changed.
The attached files contain a demo application, which is a minimal sample to reproduce the problem. Due to the file upload size limitation, the referenced Telerik DLLs for the sample project are not contained.
A RadListBox with a VirtualizingWrapPanel as ItemsPanel is used to display a collection of strings. The ScrollUnit is set to Pixel. The size of the items can be adjusted with a button that toggles these sizes: Small, Medium and Large. The current size is displayed in a TextBlock. The sizes are defined as an enum and mapped to ItemWidth and ItemHeight in a Style.
The previously selected item in its original size still exists, is selected, immovable and clickable.
All items are displayed using the new size and the corresponding item is selected. There are no duplicate items or leftover items with the previous size.
This behavior is reproducible when the ItemHeight and ItemWidth properties are changed runtime. When thеse properties are changing, and an item is removed, its container is still presenting in the UI, which leads to an empty container.
I you add an item and remove an item from the items source of the panel's host, empty spaces are drawn.
This is reproducible only when using the .NET 4.5 version of Telerik UI for WPF.
To resolve this, avoid using the VirtualizingWrapPanel, or use the .NET 4 version of the Telerik dlls.
Hello,
Since I updated to the most recent version of your controls, I can see that many of my users get a DivideByZero exception.
I have not made any changes at all to my code, and unfortunately I cannot reproduce it.
It's reported a couple of times per day though via our uncaught exception tracker.
The callstack is:
System.DivideByZeroException: at Telerik.Windows.Controls.VirtualizingWrapPanel.GetPosition(System.Int32 index, System.Int32 itemsInDirection) at offset 0
at Telerik.Windows.Controls.VirtualizingWrapPanel.Telerik.Windows.Controls.Internal.IPanelKeyboardHelper.GetOffsets(System.Int32 index) at offset 0
at Telerik.Windows.Controls.Internal.PanelHelper.<>c__DisplayClass2.<MakeVisible>b__0() at offset 208
at Telerik.Windows.Controls.Internal.PanelHelper.ResumeExecution() at offset 27
at Telerik.Windows.Controls.Primitives.ListControl.OnScrollViewerLoaded(System.Object sender, System.Windows.RoutedEventArgs e) at offset 0
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object target, System.Windows.RoutedEventArgs routedEventArgs) at offset 0
at System.Windows.EventRoute.InvokeHandlersImpl(System.Object source, System.Windows.RoutedEventArgs args, System.Boolean reRaised) at offset 230
at System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender, System.Windows.RoutedEventArgs args) at offset 87
at System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs e) at offset 20
at System.Windows.BroadcastEventHelper.BroadcastEvent(System.Windows.DependencyObject root, System.Windows.RoutedEvent routedEvent) at offset 71
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(System.Object root) at offset 38
at MS.Internal.LoadedOrUnloadedOperation.DoWork() at offset 8
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() at offset 42
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() at offset 88
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(System.Object resizedCompositionTarget) at offset 92
at System.Windows.Media.MediaContext.RenderMessageHandler(System.Object resizedCompositionTarget) at offset 46
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, System.Object args, System.Int32 numArgs) at offset 119
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object source, System.Delegate callback, System.Object args, System.Int32 numArgs, System.Delegate catchHandler) at offset 2
Is this a known bug? As you can see it's thrown from your components.
VirtualizingWrapPanel with grouping