Конец списка ListView; Событие для Scrolled //c# uwp xaml
По умолчанию список показывает десять эллементов.
Необходимо:
- Узнать если список прокрутился до конца
- Продолжить Итерацию, чтобы показать следующие десять элементов
<ListView
x:Name="ListView"
Scrolled="ListView_Scrolled"
ItemsSource="{Binding ListTotal}"
CachingStrategy="RecycleElementAndDataTemplate"
HorizontalOptions="Fill"
VerticalOptions="Fill">......</ListView>
private void ListView_Scrolled(object sender, ScrolledEventArgs e)
{
// что делать здесь (???)
имеются переменные (в viewModel-е):
1. ListTotal (список из 1000 элементов)
2. Take10 (чтобы по умолчанию показывать 10 элементов)
3. PageIndex (изначально равна -1, затем ++ и умножаю на Take10 на 10, что позволяет показать 10 элементо по умолчанию)
// данное событие в CodeBehind=ContentPage, но возможно сделать байндинг для вызова комманды из вью модели, но впринципе доступ к переменным имеется
}
вопрос все тот же >>> как узнать, что пользователь дошел-доскролил до конца списка. вопрос второй у меня будет позже, но скорей всего легче, как показать следующие 10 элементов, скорей всего Take10++, но это не суть. Сейчас не могу построить правильный if в моем событии, которое запускается когда просто скролишь.
Мне бы хотелось иметь внутри события if, который позволил узнать конец отображаемого списка. Тот же вопрос на .com
Ответы (1 шт):
Вопрос закрыт, спасибо всем.
Дело в том, что при использовании кроссплатформенного приложения не все элементы работают корректно в UWP и чтобы сделать корректный скроль нужно постараться.
тут можно посмотреть что работает, а что еще на стадии разработки
а тут говорится про несправность коллектионВью
Таким образом, решение это создать клиентский класс, который будет расчитывать конец листа где есть переменная конец листа, и если она = истина запускать комманду по загрузке следующих эллементов из общего списка. Ответ, который дан тут очень помог. и вот тоже интересное решение.