To reproduce: use the following code snippet: List<Item> items = new List<Item>(); public Form1() { InitializeComponent(); for (int i = 0; i < 10; i++) { items.Add(new Item("Item" + i)); } this.radListView1.DataSource = items; this.radListView1.DisplayMember = "Title"; this.radButton1.Click += radButton1_Click; } public class Item { public string Title { get; set; } public Item(string title) { this.Title = title; } } private void radButton1_Click(object sender, EventArgs e) { if (this.radListView1.SelectedItem != null) { items.Remove(this.radListView1.SelectedItem.DataBoundItem as Item); this.radListView1.DataSource = null; this.radListView1.DataSource = items; this.radListView1.DisplayMember = "Title"; } } Steps: 1. Select the first item and click the button. 2. Select the last item and click the button again. As a result, an ArgumentOutOfRangeException is thrown. Workaround: use BindingList instead of List