C# 向LongListSelector添加项目后出现滚动问题
我正在一个长列表中显示YouTube视频。当这个人到达我使用拉刷新类的列表末尾时,会添加新的视频(每次20个) 现在列表中显示了新的视频,但我只能滚动浏览其中的20个。如果我滚动超过这个范围,我可以看到列表项,但它会以橡皮筋效果向后滚动。现在,当我点击任何可见的项目时,我被发送到下一页,当我点击后退按钮时,LongListSelector现在显示所有项目,没有问题 代码如下:C# 向LongListSelector添加项目后出现滚动问题,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,我正在一个长列表中显示YouTube视频。当这个人到达我使用拉刷新类的列表末尾时,会添加新的视频(每次20个) 现在列表中显示了新的视频,但我只能滚动浏览其中的20个。如果我滚动超过这个范围,我可以看到列表项,但它会以橡皮筋效果向后滚动。现在,当我点击任何可见的项目时,我被发送到下一页,当我点击后退按钮时,LongListSelector现在显示所有项目,没有问题 代码如下: private void GetYoutubePlaylist(string feedXML) { try
private void GetYoutubePlaylist(string feedXML)
{
try
{
StringReader stringReader = new StringReader(feedXML);
XmlReader xmlReader = XmlReader.Create(stringReader);
SyndicationFeed feed = SyndicationFeed.Load(xmlReader);
YoutubeVideo video = null;
foreach (SyndicationItem item in feed.Items)
{
video = new YoutubeVideo();
video.YoutubeLink = item.Links[0].Uri;
string a = video.YoutubeLink.ToString().Remove(0, 31);
video.Id = a.Substring(0, 11);
video.Title = item.Title.Text;
video.PubDate = item.PublishDate.DateTime;
video.Thumbnail = YouTube.GetThumbnailUri(video.Id, YouTubeThumbnailSize.Small);
videosList.Add(video);
}
if (video != null)
{
MainListBox.ItemsSource = videosList;
}
}
catch { }
}
我如何解决这个问题?经过一番努力,我终于可以解决这个问题了。我所需要做的就是,在将videoslist指定为MainListBox的ItemSource之前,我将null指定给ItemSource。工作得很好 这是最后的代码
private void GetYoutubePlaylist(string feedXML)
{
var last = new YoutubeVideo(); //scroll to this item when new items are loaded
if(videosList.Count > max_results)
last = videosList[videosList.Count - 11];
try
{
StringReader stringReader = new StringReader(feedXML);
XmlReader xmlReader = XmlReader.Create(stringReader);
SyndicationFeed feed = SyndicationFeed.Load(xmlReader);
YoutubeVideo video;
foreach (SyndicationItem item in feed.Items)
{
video = new YoutubeVideo();
video.YoutubeLink = item.Links[0].Uri;
string a = video.YoutubeLink.ToString().Remove(0, 31);
video.Id = a.Substring(0, 11);
video.Title = item.Title.Text;
video.PubDate = item.PublishDate.DateTime;
video.Thumbnail = YouTube.GetThumbnailUri(video.Id, YouTubeThumbnailSize.Small);
videosList.Add(video);
}
MainListBox.ItemsSource = null;
MainListBox.ItemsSource = videosList;
if(last.Id!=null)
MainListBox.ScrollTo(last as YoutubeVideo);
}
catch { }
}