Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只读集合c#wp7上不支持操作_C#_.net_Silverlight_Windows Phone 7 - Fatal编程技术网

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

只读集合c#wp7上不支持操作,c#,.net,silverlight,windows-phone-7,C#,.net,Silverlight,Windows Phone 7,当用户到达列表框底部时,我试图实现一个懒惰的“加载更多”项目,但每次我尝试向列表框添加新项目时,我都会得到如下结果: “只读集合上不支持操作。” 我已经尝试过从论坛到博客的几种解决方案,但似乎都不管用。我甚至不能理解问题背后的逻辑,这对我来说有点奇怪 我所做的基本上是加载一个项目列表,并将其指定为我的listbox的itemsource wineFilterListBox.ItemsSource = wines; 当用户到达列表的底部时,我会添加更多的项目(就像用于wp7的twitter应

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

“只读集合上不支持操作。”

我已经尝试过从论坛到博客的几种解决方案,但似乎都不管用。我甚至不能理解问题背后的逻辑,这对我来说有点奇怪

我所做的基本上是加载一个项目列表,并将其指定为我的listbox的itemsource

  wineFilterListBox.ItemsSource = wines;
当用户到达列表的底部时,我会添加更多的项目(就像用于wp7的twitter应用程序一样)

公众可观察收集葡萄酒;
...
如果(在底部)
{
int Count=page.wineFilterListBox.Items.Count;
int end=计数+10;
for(int i=Count;i
使用
ItemSource
时,
Items
集合将变为只读。听起来您必须将数据添加到集合中,而不是添加到
列表框中

请参阅MSDN:

特别是,本节:

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

尝试直接将项目添加到
wines
集合,因为您的集合是“可观察集合”:

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


仅供参考,如果您有意不想使用
ObservableCollection
设置
ItemsSource
您可以手动将
Wine
添加到
wineFilterListBox中。项目

for (int i = Count; i < 10; i++)
{
    wineFilterListBox.Items.Add(new Wine());
}
for(int i=Count;i<10;i++)
{
wineFilterListBox.Items.Add(newwine());
}

这会导致
wineFilterListBox.Items
不会变成只读的

谢谢。删除最后一行就可以了。“wineFilterListBox.Items.Add(wines);”我尝试了太多的解决方案,以至于在使用ObservableCollection时错过了基本的解决方案。仅仅添加到葡萄酒列表就足以更新列表框。@Brunonnes:没问题!总是一些小事让我们感动:-)
for (int i = Count; i < 10; i++)
{
    wineFilterListBox.Items.Add(new Wine());
}