Селектор длинного списка WP8 PullToRefresh и пустое окно просмотра

Я пытаюсь реализовать PullToRefresh на моем longlistselector. Я написал свой код с помощью таких сообщений, как это и это

проблема в том, что обработчик события сжатия вызывается всякий раз, когда я прокручиваю вверх или вниз, независимо от того, достиг ли я верхней или нижней части списка или нет. Выполнив дополнительный поиск, я обнаружил, что мое решение связано с viewportcontrol, который является дочерним элементом longlistselector. Я попытался получить этот viewportcontrol с помощью VisualTreeHelper:

_viewport = FindVisualChild<ViewportControl>(listbox);

и по FindName :

_viewport  = this.FindName("ViewportControl") as ViewportControl;

но он всегда возвращает ноль. Кто-нибудь знает, что я делаю неправильно здесь?


person Nada Naoushi    schedule 19.07.2014    source источник


Ответы (1)


Я решил свою проблему, создав собственный селектор длинного списка и переопределив метод OnApplyTemplate:

public class MyLongListSelector : LongListSelector
    {
        public ViewportControl ViewportControl { get; private set; }
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            ViewportControl = (ViewportControl)GetTemplateChild("ViewportControl");
        }
    }

Надеюсь, это кому-нибудь поможет.

person Nada Naoushi    schedule 25.07.2014