对于我的Windows Phone 8应用,我的数据提供商每页提供10个项目,我必须以LongListSelector
显示结果。
我的第一个挑战是它提供了我解析为数组的JSON数据,所以我无法在我的longlistselector.ItemsSource中轻松添加项目。好吧,将通过observableCollection以某种方式完成。
第二个挑战是当用户向下滚动到第8或第9项时我必须加载第2页,依此类推,直到它返回小于10的项目。
我完成了ItemRealized事件,在加载时调用了所有10个项目,所以如果我加载第2页,它将在加载屏幕之前加载所有页面。
我已经检查了msdn的TwitterSearch示例,但不幸的是它的api已过期。有什么帮助吗?
修改
对于我的测试项目,项目模板如下。
<phone:LongListSelector.ItemTemplate>
<DataTemplate >
<ListBoxItem Margin="20">
<TextBlock FlowDirection="LeftToRight" Text="{Binding}" Margin="0,10,0,0" Foreground="#343330" FontSize="24"/>
</ListBoxItem>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
并且绑定在下面。
ObservableCollection<string> data = new ObservableCollection<string>();
.
.
.
IsLoading = true;
for (int i = 0; i < 10; i++)
data.Add(string.Format("item {0}", (pageNo * 10) + (i + 1)));
pageNo++;
IsLoading = false;
itemRealized事件在下面给出
private void LongListSelector_ItemRealized(object sender, ItemRealizationEventArgs e)
{
//data.ItemCount = data.ItemCount + 1;
itemCount++;
if (itemCount < 100
&& reloadOnItem.Contains(itemCount))
{
loadData();
}
}