我有一个包含行的ListBox,其中每行包含一个“Image”和一个“TextBlock”。当我删除后面的一行时,代码如下:
this.UserListBox.Items.RemoveAt(this.UserListBox.SelectedIndex);
它引发了一个例外:
只读集合不支持该操作。
如何从列表框中删除行?
我正在写一部Windows手机7 APP。
答案 0 :(得分:4)
如果在ListBox上设置ItemsSource,则Items在内部生成并且只读。在这种情况下,您需要从supoplied项集合中删除该项。如果集合实现了INotifyCollectionChanged,则集合更改将反映在列表框中。
答案 1 :(得分:0)
您应该改为使用ObservableCollection,而不是将项目列表绑定到列表框的itemsSource。这将解决问题。 ObservabeCollection有一个可以使用的Remove方法
UserListBox.Items.Remove(this.UserListBox.SelectedItem);