只读集合不支持操作

时间:2011-06-21 08:27:20

标签: exception windows-phone-7 listbox

我有一个包含行的ListBox,其中每行包含一个“Image”和一个“TextBlock”。当我删除后面的一行时,代码如下:

 this.UserListBox.Items.RemoveAt(this.UserListBox.SelectedIndex);

它引发了一个例外:

  

只读集合不支持该操作。

如何从列表框中删除行?

我正在写一部Windows手机7 APP。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

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