只读集合c#wp7不支持该操作

Bru*_*ria 7 .net c# silverlight windows-phone-7

我试图在用户到达列表框底部时实现一个懒惰的"加载更多"项目,但每当我尝试将新项目添加到列表框时,我得到的结果如下:

"只读集合不支持操作."

我已经尝试过从论坛到博客的几个解决方案似乎都没有用.我甚至无法理解这个对我来说有点奇怪的问题背后的逻辑.

我正在做的基本上是加载一个项目列表并指定为我的列表框的itemsource.

  wineFilterListBox.ItemsSource = wines;
Run Code Online (Sandbox Code Playgroud)

当用户到达列表的底部时,我添加更多项目(就像wp7的twitter app一样)

public ObservableCollection<Wine> wines;
...

   if (atBottom)
   {
       int Count = page.wineFilterListBox.Items.Count;
       int end = Count + 10;
       for (int i = Count; i < end; i++)
       {
           page.LoadWineList(Count);
       }
   }
...

   private void LoadWineList(int Count = 1)
   {
   ...
      wineFilterListBox.Items.Add(wines);
   }
Run Code Online (Sandbox Code Playgroud)

Jam*_*are 9

使用时ItemSource,Items集合变为只读.听起来你必须将数据添加到集合而不是ListBox Items属性.

请参阅MSDN:ItemsControl.ItemSource属性

特别是这一节:

设置ItemsSource属性后,Items集合将变为只读和固定大小.

尝试wines直接将项添加到集合中,因为您的集合是"ObservableCollection":

您应该将ItemsSource设置为实现INotifyCollectionChanged接口的对象,以便集合中的更改将反映在ItemsControl中.ObservableCollection(Of T)类定义了这样一个对象.