SelectionChanging event could be added for preventing selection in code, just like SelectionChanging event in RadGridView and PreviewSelectionChanged in RadTreeView
The issue can be reproduced in a scenario in which there are a RadListBox and a RadGridView defined and their SelectedItem properties are bound to the same property in the view model. The source collection of RadListBox contains some objects present in the one bound to RadGridView's ItemsSource. If the user selects an item in RadGridView that is also present in the items of RadListBox, the selection is performed in both controls as expected. However, when already having a selected item in both controls, if the user selects an item in RadGridView that is not present in the items of RadListBox, the selection in RadListBox is not cleared. Thus, in order to selected the previously selected item, it needs to be deselected and selected again. UPDATE: After the researching the issue, it seems that the logic for handling the case when a SelectedItem that is not present in the source collection is being set is slightly different for Silverlight and WPF. For the WPF version of the control a DependencyProperty.UnsetValue is used, whereas a null value is set for the Silverlight RadListBox. Thus, in Silverlight the selection is cleared and in WPF it is not. I am afraid, that we cannot commit ourselves to modifying this by-design implementation, as this will result in a braking change. With this in mind, I will update the status of the logged bug to Declined. What we can suggest as a workaround, would be to define a second calculated property in the view model and bind the SelectedItem of RadListBox to it. The logic in the property setter would be to set a null value if the SelectedItem is not present in the source collection of RadListBox.
When the ItemsPanel of the RadListBox is RadWrapPanel and the user press Down/Up key the RadListBox selects always the next/previous item instead of the corresponding item on the next/previous row.
Available in LIB version 2018.1.205, it will be also available in the R1 2018 SP2 Release.
Currently , RadListBox does not take into account the value of the attached property KeyboardNavigation.DirectionalNavigation. Users need to set DirectionalNavigation to Continue / Cycle / Contained. Default value of this property is Continue, but RadListBox acts like Contained and disregards the attached property.
As a workaround, the ScrollingSettingsBehavior.ScrollStep attached property of the RadListBox control can be set to a value equal to that of the Height of the RadListBoxItems. Available in R3 2017 Official Release Version.
Available in R3 2017 Official Release Version.
It would be great to have ScrollPositionIndicatorTemplate for RadListBox, similar to RadGridView (see RadGridView's implementation here http://docs.telerik.com/devtools/wpf/controls/radgridview/features/scrolling). Introduce a feature where a scroll position indicator is displayed when the deferred scrolling is enabled (ScrollViewer.IsDeferredScrollingEnabled=True). The scroll indicator is a small tooltip displayed next to the scrollbar and displaying information about the potential item that should be displayed at the top of the viewport. This is the same as in RadGridView's ScrollPositionIndicator. You can check this in the following help article: (http://docs.telerik.com/devtools/wpf/controls/radgridview/features/scrolling#scrollpositionindicator). See also the attached video.
A workaround is to use the SelectedItem of the control and get the value of the needed property of the item.
When the ItemsSource of the control is changed to a new collection the old selected items are cached and if a collection containing the old selected items source is set as ItemsSource the cached items are restored. Make it possible to disabled this functionality per control. Available in the 2017 R1 Release (2017.1.117).