无法将JSON数组绑定到c#Windows Phone 8.1中的ListBox

时间:2015-09-18 09:34:01

标签: c# json listbox windows-phone-8.1

大家好,我有一个Json

public class Contact
{
    public string contact_name_given { get; set; }
    public string contact_name_middle { get; set; }
    public string contact_name_family { get; set; }
    public List<object> contact_phones { get; set; }
    public List<object> contact_addresses { get; set; }
    public List<object> contact_notes { get; set; }
    public string contact_dialer { get; set; }
}
public class RootObject
{
    public string user_uuid { get; set; }
    public string add_date { get; set; }
    public List<Contact> contact { get; set; }
}

我需要绑定到列表框:“contact_name_given”,“contact_name_family”和“contact_phones”。我试着这样做:

List<RootObject> des = DeserializeFromJson<List<RootObject>>(result);
for (int i =0; i< des.Count; i++)
PhoneList.ItemsSource = des[i].contact;

但这只显示了最后一个联系人姓名,如何显示ListBox中的所有联系人? 感谢所有

1 个答案:

答案 0 :(得分:0)

您应该做的是以下内容。

在主列表框的DataTemplate中,您应该再添加3个列表框以显示您的信息,因为您要绑定的属性是List。

<ListBox Name=“box”>
<ListBox.ItemTemplate>
  <DataTemplate>
    <StackPanel>
        <Listbox ItemSource = {Binding first_property_name_goes_here} >
            <Listbox.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                    </StackPanel>
                </DataTemplate>
        </Listbox.ItemTemplate>
        </Listbox>


        <Listbox ItemSource = {Binding second_property_name_goes_here} >
            <Listbox.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                    </StackPanel>
                </DataTemplate>
        </Listbox.ItemTemplate>
        </Listbox>

        <Listbox ItemSource = {Binding third_property_name_goes_here} >
            <Listbox.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                    </StackPanel>
                </DataTemplate>
        </Listbox.ItemTemplate>
        </Listbox>

</StackPanel>
</DateTemplate>
</ListBox.ItemTemplate>
</Listbox

对于每个嵌套列表框,您将定义您希望项目显示方式的数据模板,当然,在每个数据模板中,您将绑定列表中类的属性