Обязательный вопрос для списка Silverlight - PullRequest
1 голос
/ 28 января 2011

У меня есть список, который связан с наблюдаемой коллекцией пользовательского класса.Работает отлично.

Что я хочу сделать, мы добавим в последнюю строку, которая не является частью наблюдаемой коллекции, когда бы она ни появлялась, она должна вызвать функцию для загрузки большего количества элементов в список.

Спасибо, Эрфан Раджпут

Ответы [ 2 ]

0 голосов
/ 29 января 2011

Я нашел способ сделать это, пожалуйста, предложите, если это правильный подход с учетом текущих ограничений элементов управления Silverlight.

в XAML:

<ListBox x:Name="MyListBox" ItemsSource="{Binding MyObservableCollection}"
    ItemTemplate="{StaticResource ItemDisplayTemplate}"
    ManipulationCompleted="MyListBox_ManipulationCompleted"/>

в CS:

private void MyListBox_ManipulationCompleted(object sender,
        System.Windows.Input.ManipulationCompletedEventArgs e)
{
    ScrollViewer sv = Utility.FindScrollViewerRecursive((ListBox)sender);
    int a = Int32.Parse(Math.Round(sv.VerticalOffset).ToString()) +
        Int32.Parse(Math.Round(sv.ViewportHeight).ToString());
    if ((a + 1) >= sv.ExtentHeight)
    {
        Debug.WriteLine("Should start loading new items in background");
    }
    Debug.WriteLine(sv.VerticalOffset + " - " + sv.ViewportHeight + " - " + sv.ExtentHeight);
}

Я взял FindScrollViewerRecursive отсюда http://blogs.msdn.com/b/rohantha/archive/2010/09/12/silverlight-wp7-list-scroll-with-items-as-image-description-from-web-bing-image-search.aspx

Я опубликую полный пример исходного кода в ближайшее время ... пока, пожалуйста, предложите, если этот метод в порядке.

0 голосов
/ 28 января 2011

Шаблон по умолчанию для ListBox выглядит примерно так:

<Border ...>
  <ScrollViewer x:Name="ScrollViewer" ...>
    <ItemsPresenter />
  </ScrollViewer>
</Border>

ItemsPresenter - это тот, который отображает элементы из ItemsSource.

Как насчет переопределения шаблона по умолчанию на что-то вроде:

<Border ...>
  <ScrollViewer x:Name="ScrollViewer" ...>
    <StackPanel>
      <ItemsPresenter ... />
      <!-- Your Control Here -->
    </StackPanel>
  </ScrollViewer>
</Border>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...