Im пытается добавить два пути (вверх & down) бесконечный список прокрутки в мое приложение WP8. Поэтому, когда список попадает в верхнюю часть, мы загружаем «меньшие» элементы из веб-api, и когда список заканчивается, мы загружаем «большие» элементы из веб-api.Более точная альтернатива LongListSelector.ItemRealized
Моя первоначальная идея состояла в том, чтобы использовать этот список, верхний и нижний колонтитулы заданы над экраном.
<phone:LongListSelector x:Name="List" ItemsSource="{Binding Routes}" Margin="0,0,0,-90" ItemRealized="listBox_ItemRealized">
<phone:LongListSelector.ListHeader>
<Grid Margin="12,-90,12,30" Height="60" VerticalAlignment="Top">
<StackPanel VerticalAlignment="Center">
<TextBlock Text="Load more" />
</StackPanel>
</Grid>
</phone:LongListSelector.ListHeader>
<phone:LongListSelector.ListFooter>
<Grid Margin="12,30,12,0" Height="60" VerticalAlignment="Bottom">
<StackPanel VerticalAlignment="Center">
<TextBlock Text="Load more" />
</StackPanel>
</Grid>
</phone:LongListSelector.ListFooter>
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Margin="12,8" Background="#FFd3dae8" Width="456">
<TextBlock Text="{Binding item}" />
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
void listBox_ItemRealized(object sender, ItemRealizationEventArgs e)
{
if (e.ItemKind == LongListSelectorItemKind.ListHeader)
{
// Get smaller items
}
else if (e.ItemKind == LongListSelectorItemKind.ListFooter)
{
// Get bigger items
}
}
Тогда я могу использовать ListBox.ItemRealized, чтобы проверить, когда колонтитулы получает реализованы и загружать больше данных, основанных на этом.
Проблема в том, что я могу получить только 5 элементов из веб-api сразу, поэтому изначально список содержит 5 элементов. Это нормально, список проходит по экрану, так как мой шаблон элемента списка на самом деле довольно большой, и ни один нижний колонтитул или заголовок фактически не видны.
Но событие ItemRealized создается для каждого элемента, даже если они на самом деле не видны. Я думаю, проблема в том, что LongListSelector фактически загружает 10 (?) Элементов одновременно и повышает ItemRealized для всех из них?
Есть ли какие-либо другие методы, которые я могу использовать для достижения такой функциональности?
В этом случае для пользователя достаточно 5 элементов в списке. Но было бы здорово, если бы пользователь мог просто прокручивать вверх/вниз, чтобы получить больше результатов. Совершенно из моих рук, что я сразу получаю только пять предметов с сервера. Конечно, я могу сделать несколько запросов, чтобы получить больше предметов ... – devha
Что я действительно ищу, это решение, где я могу точно проверить, когда список (Listbox или longlistselector) попадает сверху или снизу. Затем я могу сделать веб-запрос и получить больше предметов. – devha
Вы можете подключиться к ViewportControl, как это сделано в [этот пост] (http://visallylocated.com/post/2014/01/16/Synching-the-scroll-position-of-two-LongListSelectors.aspx) –