내 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를 사용할 수 있습니다.
문제는 웹 API에서 단 5 개의 항목 만 한 번에 가져올 수 있기 때문에 처음에는 목록에 5 개의 항목이 포함되어 있습니다. 괜찮습니다. 목록 항목 템플릿이 실제로 매우 커서 어떤 꼬리말이나 머리글도 실제로 표시되지 않으므로 목록이 화면 위로 이동합니다.
그러나 ItemRealized 이벤트는 실제로 볼 수없는 경우에도 각 요소에 대해 발생합니다. 문제는 LongListSelector 실제로 한 번에 10 (?) 항목을로드하고 모두에 대한 ItemRealized 발생시키는 것입니다 생각하십니까?
이런 종류의 기능을 수행하는 데 사용할 수있는 다른 기술이 있습니까?
이 경우 일반적으로 목록에있는 5 개의 항목으로 충분합니다. 그러나 더 많은 결과를 얻으려면 위/아래로 스크롤 할 수 있다면 좋을 것입니다. 한 번에 서버에서 단 5 항목 만 얻는 것은 내 손에서 완전히 벗어났습니다. 물론 더 많은 항목을 가져 오기 위해 여러 요청을 할 수 있습니다 ... – devha
정말 찾고있는 것은 정확히 목록 (목록 상자 또는 longlistselector)이 위 또는 아래에 도달 할 때 확인할 수있는 솔루션입니다. 그러면 웹 요청을하고 더 많은 아이템을 얻을 수 있습니다. – devha
[이 게시물] (http://visuallylocated.com/post/2014/01/16/Synching-the-scroll-position-of-two-LongListSelectors.aspx)에서 수행 한대로 ViewportControl에 연결할 수 있습니다. –