Windows Phone 8上ListBox中的数据绑定

时间:2014-03-15 23:40:28

标签: c# xaml windows-phone-8

我是Windows Phone 8的新手。我有一个来自服务器的数据列表:

RootObject json = JsonConvert.DeserializeObject<RootObject>(await serverData);

  mylist.ItemsSource = json.friends;
public class Friend
{
    public string first_name { get; set; }
    public string last_name { get; set; }
    public string place { get; set; }
    public string going { get; set; }
    public string thumbnail { get; set; }
}

    public class RootObject
    {
        public List<Friend> friends { get; set; }
    }

我想在UI中的ListBox中显示该数据:

  <ListBox x:Name="mylist" Margin="10,0,30,0" Height="486" Width="404" FontSize="20">
            <ListBox.ItemTemplate>
                <DataTemplate >
                    <StackPanel Margin="10,0,10,8">
                        <TextBlock Text="{Binding first_name }" TextWrapping="Wrap" FontSize="18" />
                        <TextBlock Text="{Binding last_name }" TextWrapping="Wrap" FontSize="18" />
                        <TextBlock Text="{Binding place }" TextWrapping="Wrap" FontSize="18" />
                        <TextBlock Text="{Binding going }" TextWrapping="Wrap" FontSize="18" />
                        <TextBlock Text="{Binding thumbnail }" TextWrapping="Wrap" FontSize="18" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

这是一个有效的版本

1 个答案:

答案 0 :(得分:1)

ItemsSource上的ListBox应绑定到friends,如下所示:

<ListBox ItemsSource="{Binding friends}"  Margin="10,0,30,0" Height="486" Width="404" FontSize="20">
    <ListBox.ItemTemplate>
        <DataTemplate >
            <StackPanel Margin="10,0,10,8">
                <TextBlock Text="{Binding first_name }" TextWrapping="Wrap" FontSize="18" />
                <TextBlock Text="{Binding first_name }" TextWrapping="Wrap" FontSize="24" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

如果你还没有完成它,你需要在下载数据之后为页面设置DataContext,就像这样(假设你在页面的代码隐藏文件中进行下载,例如MainPage.xaml.cs中):

RootObject json = JsonConvert.DeserializeObject<RootObject>(await serverData);
this.DataContext = json;