The state of the checkbox inside the items is not displayed correctly when RadListView is disabled.
The horizontal scroll bar of RadListView does update correctly when AllowArbitraryItemWidth is true.
ExpandAll/CollapseAll API for groups will be a nice addition to RadListView. This will avoid iteration over the groups.
Sorting in RadListView does not work when using custom grouping.
FIX. RadListView - the Clear method of the CheckedItems collection does not work - it causes the application to freeze
Reason: this is the expected behavior.
To reproduce: add a RadListView, an ImageList (with two images: e.g. "crop.png" and "save.png") and a RadDropDownList. Use the following code snippet: public Form1() { InitializeComponent(); this.radDropDownList1.DataSource = Enum.GetValues(typeof(ListViewType)); this.radListView1.ImageList = this.imageList1; this.radListView1.SmallImageList = this.imageList1; this.radListView1.Columns.Add("Column1"); string imageKey = string.Empty; for (int i = 0; i < 5; i++) { this.radListView1.Items.Add("Item" + i); if (i % 2 == 0) { imageKey = "crop.png"; } else { imageKey = "save.png"; } this.radListView1.Items.Last().ImageKey = imageKey; this.radListView1.Items.Last()["Column1"] = this.radListView1.Items.Last().Text; } } private void radDropDownList1_SelectedValueChanged(object sender, EventArgs e) { if (this.radDropDownList1.SelectedValue != null) { this.radListView1.ViewType = (ListViewType)this.radDropDownList1.SelectedValue; } } Initially, we will see the image displayed for each item. However, when you change to DetailsView, the image is not displayed. Workaround: use the RadListView.CellFormatting event and set CellElement.Image property for the cells in the first column.
To reproduce: populate RadListView with data and enable editing. Allow multiline text for the editor private void radListView1_EditorInitialized(object sender, Telerik.WinControls.UI.ListViewItemEditorInitializedEventArgs e) { ListViewTextBoxEditor editor = e.Editor as ListViewTextBoxEditor; if (editor!=null) { editor.Multiline = true; editor.AcceptsReturn = true; } } Workaround: private void radListView1_EditorRequired(object sender, ListViewItemEditorRequiredEventArgs e) { e.Editor = new CustomListViewTextBoxEditor(); } public class CustomListViewTextBoxEditor : ListViewTextBoxEditor { protected override void OnKeyDown(KeyEventArgs e) { if (e.KeyCode== Keys.Enter && e.Modifiers== Keys.Shift) { return; } base.OnKeyDown(e); } }
To reproduce: run the attached sample project on 150%. Workaround: this.radCheckedDropDownList1.Multiline = true;
Steps to reproduce. 1. Add a RadListView to a form and set its height to around 68. 2. Set the ViewType to ViewType.Details. 3. Add several items so the vertical scroll bar would show. 4. scroll to the bottom and use the scroll bar up button to scroll up. You will see that only half of some items would be shown, until you reach the top. Resolution: When available space for rows is less than the height of a single row is normal to not see the hole row.
Steps to reproduce. 1. Add a RadListView to a form 2. Set the ViewType to Details. 3. Add a button and in the click event handler add 10000 items to the list view You will see that the add process will take a while.
To reproduce: Add a RadListView with Icons mode and Horizontal orientation, call ensure visible on non visible items, you will see that the scrollbar's value is on maximum
1. Drag a RadListView from the toolbox to the form. 2. Add some columns and modify their Width property 3. Run the project. 4. An Object reference exception will be thrown.
If you set the ViewType property to DetailView and the VerticalScrollState property to AlwaysShow at design time and you run the project, you will notice that the VerticalScrollState property is not taken into consideration.
The CompositeFilterDescriptor does not fire notifications when its FilterDescriptors collection changes. The result is that the items of RadListView are not filtered correctly when adding FilterDescriptors to a CompositeFilterDescriptor.
FIX. RadListView - CheckedItems is not cleared when the DataSource is changed
A bug has been introduced in the RadListView control in one of the newer releases: When the control is set to DetailsView the ItemMouseDoubleClick-even will always fire twice. This is not the case when the RadListView has the ListView or IconsView ViewType. To repoduce the bug: Create a new project with a new form, add a RadListView and a few items to the ListView, set ViewMode to DetailsView, add the event and marvel at the event firing twice.
To reproduce: public Form1() { InitializeComponent(); this.radListView1.AllowDragDrop = true; this.radListView1.ViewType = ListViewType.DetailsView; this.radListView1.ItemSize = new System.Drawing.Size(120, 40); DataTable dt = new DataTable(); dt.Columns.Add("Id", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Image", typeof(Image)); for (int i = 0; i < 3; i++) { dt.Rows.Add(i, "Item" + i, Properties.Resources._2RibbonMenuOpen2); } foreach (DataRow row in dt.Rows) { ListViewDataItem di = new ListViewDataItem(); di.DataBoundItem = row; this.radListView1.Items.Add(di); } } private void radListView1_VisualItemCreating(object sender, ListViewVisualItemCreatingEventArgs e) { e.VisualItem = new CustomItem(); } public class CustomItem : DetailListViewVisualItem { private DockLayoutPanel panel; private LightVisualElement imageElement; private LightVisualElement titleElement; protected override Type ThemeEffectiveType { get { return typeof(DetailListViewVisualItem); } } protected override void CreateChildElements() { base.CreateChildElements(); panel = new DockLayoutPanel(); this.Children.Add(panel); imageElement = new LightVisualElement(); imageElement.Size = new System.Drawing.Size(25, 40); panel.Children.Add(imageElement); DockLayoutPanel.SetDock(imageElement, Telerik.WinControls.Layouts.Dock.Left); titleElement = new LightVisualElement(); panel.Children.Add(titleElement); titleElement.Size = new System.Drawing.Size(55, 40); titleElement.ShouldHandleMouseInput = false; DockLayoutPanel.SetDock(titleElement, Telerik.WinControls.Layouts.Dock.Right); } protected override SizeF MeasureOverride(SizeF availableSize) { SizeF measuredSize = base.MeasureOverride(availableSize); this.panel.Measure(measuredSize); return measuredSize; } protected override SizeF ArrangeOverride(SizeF finalSize) { base.ArrangeOverride(finalSize); this.panel.Arrange(new RectangleF(PointF.Empty, finalSize)); return finalSize; } protected override void SynchronizeProperties() { base.SynchronizeProperties(); this.Text = string.Empty; DataRow row = this.Data.DataBoundItem as DataRow; if (dataItem != null) { this.imageElement.Image = row["Image"] as Image; this.titleElement.Text = row["Name"].ToString(); } } } Workaround: this.radListView1.ListViewElement.DragDropService = new CustomService(this.radListView1.ListViewElement); public class CustomService : ListViewDragDropService { public CustomService(RadListViewElement owner) : base(owner) { } protected override void UpdateDragHintLocation(Point mousePosition) { FieldInfo fi = typeof(ListViewDragDropService).GetField("dragHintWindow", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); if (fi != null) { RadLayeredWindow dragHintWindow = fi.GetValue(this) as RadLayeredWindow; if (dragHintWindow == null) { return; } } base.UpdateDragHintLocation(mousePosition); } }
To reproduce: - Use the mouse to select an item from the drop down list. - Using the keyboard, type a letter and use the mouse to select one more item. - Change the DataSource with a button. Workaround: radCheckedDropDownList1.DataSource = null; radCheckedDropDownList1.AutoCompleteMode = AutoCompleteMode.None; radCheckedDropDownList1.ValueMember = "Id"; radCheckedDropDownList1.DisplayMember = "Value"; radCheckedDropDownList1.CheckedMember = "IsSelected"; radCheckedDropDownList1.DataSource = list; radCheckedDropDownList1.AutoCompleteMode = AutoCompleteMode.Suggest;
Use the attached project to reproduce. Workaround: - Reset the descriptors after the changes are performed. Dim sortDescriptor = radListView1.SortDescriptors(0) radListView1.SortDescriptors.Clear 'add/remove items radListView1.SortDescriptors.Add(sortDescriptor)