Try to navigate by pressing the first letter in list items. You will be able do it only for items that are currently visible.
When AutoSizeItems and TextWrap are enabled, the text of the items that are larger than the visible area of the control is truncated and items size is limited to the size of the visible area.
To reproduce: - Add data items which have category, and set the SelectionMode to MultiExtended - Then use the following code and select items from different category: private void RadListControl1_SelectedItemsChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.NewItems == null) { return; } var newCategory = (((RadListDataItem) e.NewItems[0]).DataBoundItem as MyData).Category; var prevCategory = (radListControl1.SelectedItem.DataBoundItem as MyData).Category; if (newCategory != prevCategory && radListControl1.SelectedItems.Count > 1) { radListControl1.SuspendSelectionEvents = true; //exception var items = radListControl1.SelectedItems.ToList(); for (int i = 0; i < items.Count - 1; i++) { items[i].Selected = false; } //after this the selection is broken and the user cannot select an item //radListControl1.SelectedItem = null; radListControl1.SuspendSelectionEvents = false; } }
ADD. RadListControl - add functionality to drag and drop in the same list control and between list controls
The event should notify for changes in the SelectedItems collection
RadListControl's layout remains suspended after adding items with custom visual style
RadListControl SelectionMode.MultiExtended does not work with Ctrl+Space
FIX. RadListControl - adding items and changing their text in design time is not affected in design time.
IMPROVE. RadListControl - SelectedIndexChanged event should fire for multiple selection. Resolution: You can subscribe to SelectedItemsChanged/SelectedItemsChanging events which are fired when the SelectedItems collection changes. The events are added in version Q3 2013 SP1 (2013.3.1127).
When I click on the scrollbar of a radlistcontrol to go down. The doubleclick event is fired but I don't think it should be fired.
To reproduce: protected override void OnLoad(EventArgs e) { base.OnLoad(e); AddListControl(); radListControl1.AutoSizeItems = true; radListControl1.Font = new Font("Arial", 22); } Workaround: After the font is set, set the AutoSizeItems to false and then back to true
To reproduce: 1. Create a new WinForms project 2. Drag a RadListControl on the form 3.Start the application/project 3. Focus the Control and press Pos 1 / Home or End. >> The Application crashes due to a Telerik Control internal NullReference Exception Workaround: public class CustomListControl : RadListControl { public override string ThemeClassName { get { return typeof(RadListControl).FullName; } } protected override void OnKeyDown(KeyEventArgs e) { if ((e.KeyCode == Keys.Home || e.KeyCode == Keys.End) && this.Items.Count == 0) { return; } base.OnKeyDown(e); } }
How to reproduce: var descriptionItem = new DescriptionTextListDataItem() { Text = "Chicken wings", DescriptionFont = new Font("Arial", 20, FontStyle.Bold), DescriptionText = "some description", }; this.radListControl1.Items.Add(descriptionItem); Workaround: handle the VisualItemFormatting event and set the font to the DescriptionContent element https://docs.telerik.com/devtools/winforms/dropdown-listcontrol-and-checkeddropdownlist/listcontrol/customizing-appearance/formatting-items
Workaround: this.radListControl1.ItemHeight = 40;
Workaround: this.radListControl1.VisualItemFormatting += RadListControl1_VisualItemFormatting; private void RadListControl1_VisualItemFormatting(object sender, Telerik.WinControls.UI.VisualItemFormattingEventArgs args) { DescriptionTextListVisualItem item = args.VisualItem as DescriptionTextListVisualItem; if (item == null) { return; } item.MainContent.EnableBorderHighlight = false; item.MainContent.EnableHighlight = false; item.DescriptionContent.EnableBorderHighlight = false; item.DescriptionContent.EnableHighlight = false; foreach (var c in item.Children) { this.SetNMouseProperties(c); } } private void SetNMouseProperties(RadElement element) { element.ShouldHandleMouseInput = false; foreach (var item in element.Children) { this.SetNMouseProperties(item); } }
To reproduce: run the atatched project, you will notice that the last item is not visible. Workaround: add the items in the form's constructor.
How to reproduce: check the attached file Workaround: create a custom drag-drop service public class CustomListControlDragDropService : ListControlDragDropService { private RadListDataItem draggedItem; public CustomListControlDragDropService(RadListElement owner) : base(owner) { } protected override void PerformStart() { base.PerformStart(); RadListVisualItem draggedVisualItem = this.Context as RadListVisualItem; if (draggedVisualItem != null) { this.draggedItem = draggedVisualItem.Data; } } protected override void PerformStop() { base.PerformStop(); this.DisposeHint(); this.draggedItem = null; } protected override void OnPreviewDragDropCore(RadListElement targetList, RadListVisualItem targetElement) { int index = targetList.Items.Count - 1; if (targetElement != null) { index = targetList.Items.IndexOf(targetElement.Data); } if (this.draggedItem.Owner != targetList) { index++; } RadListElement dragedListView = this.draggedItem.Owner; IList<RadListDataItem> itemsToMove = new List<RadListDataItem>(dragedListView.SelectedItems.Count); foreach (RadListDataItem item in dragedListView.SelectedItems) { itemsToMove.Add(item); } dragedListView.BeginUpdate(); foreach (RadListDataItem item in itemsToMove) { item.Selected = item.Active = false; dragedListView.Items.Remove(item); } dragedListView.EndUpdate(); targetList.BeginUpdate(); foreach (RadListDataItem item in itemsToMove) { if (index > targetList.Items.Count) { targetList.Items.Add(item); } else { targetList.Items.Insert(index, item); } item.Selected = item.Active = true; index++; } targetList.EndUpdate(); } }
To reproduce: - Add some items. - Select an item and then select it again - The SelectedItemsChanged is fired 3 times and it should fire only when the item is selected for the first time. Workaround: Use SelectedIndexChanged instead.
If the end-users tries to navigate through the items of a RadListControl or RadDropDownList by using the arrow keys, he/she should skip the disabled items.
ADD. RadDropDownList and RadListControl should have DataBindingComplete event