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)
使用时ItemSource,Items集合变为只读.听起来你必须将数据添加到集合而不是ListBox Items属性.
请参阅MSDN:ItemsControl.ItemSource属性
特别是这一节:
设置ItemsSource属性后,Items集合将变为只读和固定大小.
尝试wines直接将项添加到集合中,因为您的集合是"ObservableCollection":
您应该将ItemsSource设置为实现INotifyCollectionChanged接口的对象,以便集合中的更改将反映在ItemsControl中.ObservableCollection(Of T)类定义了这样一个对象.
| 归档时间: |
|
| 查看次数: |
2876 次 |
| 最近记录: |