Проблемы с Windows Phone 7 Dynamic Listbox и RSS-фидом - PullRequest
0 голосов
/ 25 июля 2011

У меня огромные проблемы с этим, и я надеюсь, что кто-то может взять меня под свое крыло и помочь мне в этом.

Моя проблема заключается в том, что я не знаю, как динамически добавлять дополнительные элементы в список после получения первого набора из 15 через мой пользовательский канал RSS, привязанный к моему веб-сайту, в мой телефон Windows 7. 7.

Я подумываю об ограничении моего RSS-канала 15-ю элементами, чтобы подписчики не были завалены тысячами элементов в фиде.

Однако это создает проблему при кодировании для моего телефона. Если я прикреплю свой RSS-канал к 15 самым последним элементам, как я могу получить предыдущие, кроме этих 15, и другую проблему, как их загрузить?

У меня уже есть классы RSS-каналов, и я могу успешно получить RSS-канал в своем телефоне. Это не проблема. Снова заявлено - как только я загружаю свои первые 15 элементов в Windows Phone 7, как я могу загрузить дополнительные наборы из 15, если я сохраняю свои элементы RSS на своем веб-сайте xml, сохраняя до 15 элементов одновременно (опять же, так не будет RSS-канала с 1000-ю элементами каждый раз, когда человек его загружает)

Любая помощь приветствуется.

Страница CS:

private void Button_Click(object sender, RoutedEventArgs e)
    {
        RssService.GetRssItems(
            WindowsPhoneBlogPosts,
            (items) => { listbox.ItemsSource = items; },
            (exception) => { MessageBox.Show(exception.Message); },
            null
            );
    }

Страница XAML:

        <ListBox x:Name="listbox" Grid.Row="1" SelectionChanged="listbox_SelectionChanged" Style="{StaticResource ListBoxStyle1}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="60" />
                        </Grid.RowDefinitions>
                        <Image x:Name="aaa"  Grid.Row="0" HorizontalAlignment="Left" Height="60" Width="60" Source="{Binding Url}"/>
                        <TextBlock Grid.Row="1" Text="{Binding PublishedDate}" Foreground="Green" />
                        <TextBlock Grid.Row="2" TextWrapping="Wrap" Text="{Binding PlainSummary}" />
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

Же страница Xaml:

<phone:PhoneApplicationPage.Resources>
    <Style x:Key="ListBoxStyle1" TargetType="ListBox">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
        <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
        <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="BorderBrush" Value="Transparent"/>
        <Setter Property="Padding" Value="0"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListBox">
                    <ScrollViewer x:Name="ScrollViewer" Background="{TemplateBinding Background}">
                        <StackPanel>
                            <ItemsPresenter/>
                            <Button x:Name="thebutton" Content="Button" Visibility="{Binding LoadMore}"/>
                        </StackPanel>
                    </ScrollViewer>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</phone:PhoneApplicationPage.Resources>

1 Ответ

1 голос
/ 25 июля 2011

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

...