Функции ObservableCollection.Next () и observablecollection.previous () - PullRequest
1 голос
/ 09 августа 2011

У меня есть наблюдаемая коллекция с 20 элементами (изображениями) и кнопкой («Далее»). Как я могу получить такие функции, как observablecollection.next () и observablecollection.previous ()?

Ответы [ 3 ]

3 голосов
/ 09 августа 2011

Наблюдаемая коллекция не имеет понятия «Текущий» или даже «Выбранный».Они все равны.

Вы можете сохранить простой индекс int и увеличить / уменьшить его.

Или используйте свойство SelectedItem связанного ListBox или аналогичное.

1 голос
/ 09 августа 2011

Просто для следующей кнопки вы можете вызвать GetEnumerator в ObservableCollection.Это даст вам IEnumerator , для которого вы можете вызывать Current и MoveNext.

Если вам нужно реализовать предыдущее, то вы бы использовали решение, более похожее на lukas ', с индексом.

1 голос
/ 09 августа 2011

Самое простое задание - отслеживать текущий элемент с помощью итератора - простого целого числа.

int couter = 0;

Когда вы нажимаете следующую кнопку, проверьте счетчик, если количество элементов вперечислите и увеличьте счетчик:

if(counter < myObservableColection.Count)
    ++counter;

вашей предыдущей функции необходимо проверить, не является ли счетчик отрицательным числом, и уменьшить счетчик.

Вы можете попробовать более аккуратный шаблон с помощью Enumerator

...