locked
Повторение элементов в коллекции RRS feed

  • Вопрос

  • Имеется странный глюк в ListView. Реализована инкрементная загрузка данных в CollectionViewSource, который выступает источником данных для ListView. После довольно таки большого кол-ва элементов, около 150-200 (точно не считал) данные в списке начинают повторяться. Сам объект данных при этом содержит верные данные. Вся проблема в отображении. Какая может быть ошибка? 
    <ScrollViewer VerticalScrollMode="Enabled">
                                <ListView x:Name="NewsVideo" Height="450" HorizontalAlignment="Left" VerticalAlignment="Top" ItemsSource="{Binding Source={StaticResource SsViewSource}}" Width="305" IncrementalLoadingThreshold="3" ShowsScrollingPlaceholders="True">
                                    <ListView.ItemTemplate>
                                        <DataTemplate>
                                            <Grid Height="105"  HorizontalAlignment="Left" VerticalAlignment="Top" Width="{Binding Width, ElementName=NewsVideo}" >
                                                <Image Width="100" Height="100" Source="{Binding Photo, Mode=OneWay}" HorizontalAlignment="Left" VerticalAlignment="Top" >
                                                    <!--<Interactivity:Interaction.Behaviors>
                                                        <Core:IncrementalUpdateBehavior Phase="2"/>
                                                    </Interactivity:Interaction.Behaviors>-->
                                                </Image>
                                                <TextBlock Text="{Binding date, Mode=OneWay}" VerticalAlignment="Center" HorizontalAlignment="Right" Height="28" Margin="0,0,10,72" Width="226" FontSize="15">
                                                <!--<Interactivity:Interaction.Behaviors>
                                                    <Core:IncrementalUpdateBehavior Phase="1"/>
                                                </Interactivity:Interaction.Behaviors>-->
                                                </TextBlock>
                                            </Grid>
                                        </DataTemplate>
                                    </ListView.ItemTemplate>
                                </ListView>
                            </ScrollViewer>

    13 августа 2014 г. 19:32

Ответы

  • По умолчанию в ListView панель для айтемов используется ItemsStackPanel. По документации она поддерживает виртуализацию. Попробуйте заменить её на VirtualizingStackPanel и посмотреть, может это поможет.

    Было бы хорошо попробовать семпл, потому как здесь будет сложно Вам помочь. Возможно даже баг в контроле, раз Вы говорите с источником данных всё в порядке.

    14 августа 2014 г. 10:21

Все ответы

  • По умолчанию в ListView панель для айтемов используется ItemsStackPanel. По документации она поддерживает виртуализацию. Попробуйте заменить её на VirtualizingStackPanel и посмотреть, может это поможет.

    Было бы хорошо попробовать семпл, потому как здесь будет сложно Вам помочь. Возможно даже баг в контроле, раз Вы говорите с источником данных всё в порядке.

    14 августа 2014 г. 10:21
  • Спасибо
    14 августа 2014 г. 16:26