Заполнение ScrollView во время выполнения в WIndows Phone 8

У меня есть приложение для Windows Phone 8, которое отображает данные, загруженные с моего сайта.

На данный момент я установил 4 «держателя» данных, которые содержат несколько текстовых блоков и изображений. Когда приложение загружается, эти 4 держателя отображают данные для первых 4 «записей». Чтобы отобразить следующие 4 «записи», пользователь должен нажать кнопку «Далее».

Я хочу изменить это так, чтобы все «записи» отображались в ScrollView, поэтому пользователю просто нужно прокрутить вниз, чтобы просмотреть записи, а не нажимать кнопку «Далее».

Я также написал приложение для Android, используя Eclipse и Java. Чтобы сделать это, я создал макет «держателя» в формате xml, а затем использовал его в качестве шаблона для данных. Мне нужно определить макет только один раз, и он повторяется во время выполнения, заполняясь данными из каждой записи.

Как добиться того же в Windows Phone, используя vb.net и xaml?

Я гуглил, и, возможно, DataTemplate - это то, что мне нужно, однако я не уверен и понятия не имею, как это реализовать.

Если бы вы могли указать мне в правильном направлении, я уверен, что смогу понять это!

Заранее спасибо.

РЕДАКТИРОВАТЬ: Хорошо, я пробовал следующее, но ListBox пуст:

В основном у меня есть список, заполняемый во время выполнения с моего веб-сайта (я знаю, что этот бит работает):

Public WebData As New System.Collections.Generic.List(Of WebInfo)

Класс вебинформации:

Public Class WebInfo
    Public ID As Integer
    Public H1 As String
    Public A1 As String
    Public C1 As String
    Public C2 As String
    Public K1 As Date
End Class

xaml:

<ListBox x:Name="MainList" HorizontalContentAlignment="Stretch"     VerticalContentAlignment="Stretch" Grid.Row="3"  Grid.RowSpan="6"  Grid.Column="0"    Grid.ColumnSpan="3">
        <ListBox.ItemTemplate>
            <DataTemplate>
                    <TextBlock x:Name="H1" Text="{Binding H1}"  FontSize="15" Margin="0" VerticalAlignment="Center" HorizontalAlignment="Right" TextAlignment="Right" FontWeight="Bold" Foreground="Black"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
</ListBox>

Я пытаюсь установить ItemsSource, используя:

MainList.ItemsSource = WebData

ListBox не заполняется.

Есть идеи?


person user2863528    schedule 01.11.2014    source источник


Ответы (2)


Я думаю, что LongListSelector работает для вас, но вы должны отредактировать DataTemplate для своих нужд.

  <phone:LongListSelector ItemsSource="{Binding ArticleList}">
        <phone:LongListSelector.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="Title:" />
                    <TextBlock Text="{Binding Title}" />
                </StackPanel>
            </DataTemplate>
        </phone:LongListSelector.ItemTemplate>          
    </phone:LongListSelector>
person Abdurrahman Alp Köken    schedule 01.11.2014
comment
Спасибо за ваше предложение. Не могли бы вы взглянуть на редактирование выше, чтобы увидеть, где я ошибаюсь. Ваше здоровье - person user2863528; 02.11.2014
comment
Элемент управления ListBox в Windows Phone? Я не знал такого управления в WP. - person Abdurrahman Alp Köken; 02.11.2014
comment
Там есть. Вы видите что-то не так с моим кодом? Спасибо - person user2863528; 02.11.2014
comment
Если вы разрабатываете свое приложение в WP8, я предлагаю вам использовать LongListSelector вместо ListBox с точки зрения производительности. Я не знаю VB, но с вашим кодом все в порядке. Вы отлаживали свой код шаг за шагом? Есть ли ошибка привязки в окнах вывода? - person Abdurrahman Alp Köken; 02.11.2014

Проблема была в том, что я использовал в своем классе переменные, а не свойства:

Public Class WebInfo
    Public Property ID As Integer
    Public Property H1 As String
    Public Property A1 As String
    Public Property C1 As String
    Public Property C2 As String
    Public Property K1 As Date
End Class

Спасибо за вашу помощь.

person user2863528    schedule 04.11.2014