locked
Incremental Loading с# RRS feed

  • Вопрос

  •  Проблема такая, есть коллекция элементов(ObservableCollection) я привязываю ее к GridView, пока все хорошо), но есть проблема при запросе данных для коллекции, возвращаются 3 коллекции(одна из которых нужная) и две другие необходимые для нашей коллекции, если запутал дальше будет пример. И так я хочу чтобы дополнительная загрузка была реализована у класса содержащего эти поля, а не у одной коллекции. но как мне теперь получить событие или перегрузить метод для работы с ISupportIncrementallLoading? пример из моего вопроса:

    private async Task<LoadMoreItemsResult> LoadDataAsync(uint count)
    {                                       
        XDocument document = await ParseUrl("");
        var xmlreader = document.CreateReader();
        feed results = GetFeed(xmlreader);
        newsFeed = results; 
        return new LoadMoreItemsResult {Count = count};
    }
    
    public class feed 
    {
    
        public ObservableCollection<> Posts { get; set; }
        public ObservableCollection<> Profiles { get; set; }
        public ObservableCollection<> Groups { get; set; }
    
    }

    25 февраля 2013 г. 19:05

Ответы

  • Создайте свой GridView:

    class GridViewEx : GridView
        {
            protected override void PrepareContainerForItemOverride(Windows.UI.Xaml.DependencyObject element, object item)
            {
                base.PrepareContainerForItemOverride(element, item);
            }
        }

    В таком варианте у вас получится определить когда начинает загружаться новый видимый элемент в GridView и возможно это поможет осуществить дополнительную загрузку, которая вам требуется.

    27 февраля 2013 г. 6:23

Все ответы

  • А ваши коллекции не могут быть вложенными друг в друга?
    26 февраля 2013 г. 6:06
  • я считаю, что это не совсем нужная трата ресурсов, странно если бы каждый пост содержал в себе коллекцию людей и групп, меня устроит и event какой-нибудь но я его не нашел.
    26 февраля 2013 г. 6:14
  • я считаю, что это не совсем нужная трата ресурсов, странно если бы каждый пост содержал в себе коллекцию людей и групп

    Это да.

    А что вам мешает сделать свой event, если это вас устраивает?

    26 февраля 2013 г. 6:25
  • А что вам мешает сделать свой event, если это вас устраивает?

    я не нашел как GridView узнает, что есть пустое пространство, чтобы его заполнить.
    26 февраля 2013 г. 6:30
  • А если в качестве панели использовать что-то типа VirtualizingStackPanel, которая будет грузить только видимые элементы ну и подгружать по надобности дополнительные данные.
    26 февраля 2013 г. 7:05
  • Звучит хорошо)) только, как это реализовать? для GridView делаю следующее 
     <GridView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <VirtualizingStackPanel  Orientation="Horizontal"/>
                    </ItemsPanelTemplate>
      </GridView.ItemsPanel>

    26 февраля 2013 г. 13:36
  • Создайте свой GridView:

    class GridViewEx : GridView
        {
            protected override void PrepareContainerForItemOverride(Windows.UI.Xaml.DependencyObject element, object item)
            {
                base.PrepareContainerForItemOverride(element, item);
            }
        }

    В таком варианте у вас получится определить когда начинает загружаться новый видимый элемент в GridView и возможно это поможет осуществить дополнительную загрузку, которая вам требуется.

    27 февраля 2013 г. 6:23