Exception 只读集合上不支持操作

Exception 只读集合上不支持操作,exception,windows-phone-7,listbox,Exception,Windows Phone 7,Listbox,我有一个包含行的列表框,其中每行由一个“图像”和一个“文本块”组成。当我删除后面的一行时,代码如下: this.UserListBox.Items.RemoveAt(this.UserListBox.SelectedIndex); 在这里,它抛出了一个异常: 只读集合上不支持操作 如何从列表框中删除行 我正在编写一个Windows phone 7应用程序。如果您在列表框上设置了ItemsSource,则项目将在内部生成且为只读。在这种情况下,您需要从supoplied item集合中删除该项

我有一个包含行的列表框,其中每行由一个“图像”和一个“文本块”组成。当我删除后面的一行时,代码如下:

 this.UserListBox.Items.RemoveAt(this.UserListBox.SelectedIndex);
在这里,它抛出了一个异常:

只读集合上不支持操作

如何从列表框中删除行


我正在编写一个Windows phone 7应用程序。

如果您在列表框上设置了ItemsSource,则项目将在内部生成且为只读。在这种情况下,您需要从supoplied item集合中删除该项。如果集合实现INotifyCollectionChanged,则集合更改将反映在列表框中。

您应该使用ObservableCollection,而不是将项目列表绑定到列表框的itemsSource。这将解决问题。ObservabeCollection有一个可以使用的Remove方法

UserListBox.Items.Remove(this.UserListBox.SelectedItem);

“是否将您的列表框绑定到任何集合?”要添加到此答案,
ObservableCollection
是一个实现了
INotifyCollectionChanged
的列表,谢谢,它可以工作。我将列表替换为ObservableCollection。@JanSlodicka我发现,当为列表框设置ItemsSource时,不会立即生成项目,如何强制在设置ItemsSource之后立即生成项目?