ограничить количество элементов списка, отображаемых при загрузке, программно - PullRequest
1 голос
/ 22 июля 2011

У меня есть список Silverlight 2.0, который считывает данные из пользовательского списка @ SharePoint 2007. Как я могу ограничить количество элементов, отображаемых при загрузке Page.xaml?

Здесь у меня есть @ Page.xaml.cs:

private void ProcessResponse()
        {
            XDocument results = XDocument.Parse(_responseString);

            _StaffNews = (from item in results.Descendants(XName.Get("row", "#RowsetSchema"))

                        //where !item.Element("NewsThumbnail").Attribute("src").Value.EndsWith(".gif")
                        select new StaffNews()
                        {                   
                            Title = item.Attribute("ows_Title").Value,
                            NewsBody = item.Attribute("ows_NewsBody").Value,
                            NewsThumbnail = FormatImageUrl(item.Attribute("ows_NewsThumbnail").Value),
                            DatePublished = item.Attribute("ows_Date_Published").Value,
                            PublishedBy = item.Attribute("ows_PublishedBy").Value,
                        }).ToList();
            this.DataContext = _StaffNews;
            //NewsList.SelectedIndex = -1;            
        }

Ответы [ 2 ]

3 голосов
/ 22 июля 2011

Вы можете поставить .Take(20) позади ToList(), чтобы взять только 20 элементов из списка.

1 голос
/ 22 июля 2011

Take метод позволяет установить ограничение на предметы. Он будет выполнять итерацию только до тех пор, пока не будет достигнут максимальный счет. Вы можете просто использовать его вместо ToList() или, если _StaffNews определено как List<T>, просто объедините их .Take(items).ToList();

private void ProcessResponse()
{    
            var items = 10;
            XDocument results = XDocument.Parse(_responseString);

            _StaffNews = (from item in results.Descendants(XName.Get("row", "#RowsetSchema"))

                    //where !item.Element("NewsThumbnail").Attribute("src").Value.EndsWith(".gif")
                    select new StaffNews()
                    {                   
                        Title = item.Attribute("ows_Title").Value,
                        NewsBody = item.Attribute("ows_NewsBody").Value,
                        NewsThumbnail = FormatImageUrl(item.Attribute("ows_NewsThumbnail").Value),
                        DatePublished = item.Attribute("ows_Date_Published").Value,
                        PublishedBy = item.Attribute("ows_PublishedBy").Value,
                    }).Take(items);
            this.DataContext = _StaffNews;
            //NewsList.SelectedIndex = -1;            
}
...