Остановить зацикливание в конце списка селекторов в селекторе зацикливания WP7 - PullRequest
1 голос
/ 22 декабря 2011

Я сомневаюсь, есть ли способ остановить циклический селектор от зацикливания, когда он достигает конца списка.Предположим, что список содержит 10 элементов, может быть 1,2,3,4 ... 10, поэтому, когда после прокрутки вы достигнете конца списка, т.е.потока циклического селектора.Возможно ли это?

Ответы [ 2 ]

1 голос
/ 16 июля 2012

Я изо всех сил пытался найти решение этой проблемы с года. Сегодня я нашел это . Я должен был просто сделать одно изменение. и это ...

this.selectorLeft.DataSource = new ListLoopingDataSource<ItemList>(WheelDisplayName.Length+1) { Items = DisplayNames, selectedItem = DisplayNames[Index] };

Селектор зацикливания будет зацикливаться, только если общее количество элементов больше, чем WheelDisplayName + 1, если нет, он будет останавливать зацикливание в конце последнего элемента.

0 голосов
/ 24 апреля 2013

Реализация ILoopingSelectorDataSource. вернуть null в GetPrevious / GetNext в начале / конце списка.

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

abstract class DataSource : ILoopingSelectorDataSource
{
    private DateTimeWrapper _selectedItem;

    public object GetNext(object relativeTo)
    {
        DateTime? next = GetRelativeTo(((DateTimeWrapper)relativeTo).DateTime, 1);
        return null;// next.HasValue ? new DateTimeWrapper(next.Value) : null;
    }

    public object GetPrevious(object relativeTo)
    {
        DateTime? next = GetRelativeTo(((DateTimeWrapper)relativeTo).DateTime, -1);
        return next.HasValue ? new DateTimeWrapper(next.Value) : null;
    }
...