JSON数据未显示在我的listview xamarin表单上

时间:2017-11-06 20:06:14

标签: listview xamarin xamarin.forms

尝试在我的列表中仅显示2个项目。我无法得到它们.http进程正在获取数据,但我无法在列表中显示它们。

public class ServiceTypes
{
    public string Name { get; set; }
    public string Description { get; set; }
                         }
    public List<RequestType> GetRequestTypes()
    {
        var list = new List<RequestType>()
        {
            list.Name;
            list.Description;
        };

        return list;           
    }

xaml

<ListView ItemsSource="{Binding Name}">
</ListView>

1 个答案:

答案 0 :(得分:1)

ItemsSource属性应该包含您要显示的对象的列表。最好ObservableCollection您的收藏中的更改会反映在您的ListView

在您的代码隐藏中创建一个属性:

public ObservableCollection<ServiceRequestType> MyList { get; set; }

并将其设置在某处,就像在构造函数中一样:

public void MyPage()
{
    MyList = new ObservableColletion<ServiceRequestType>();
    MyList.Add(new ServiceRequestType { Name = "Foo" });
    MyList.Add(new ServiceRequestType { Name = "Bar" });

    // I'm setting it to this class, but this could be any class, preferably a ViewModel class
    BindingContext = this;
}

现在在您的XAML中,将ItemsSource设置为MyList属性,如下所示:

<ListView ItemsSource="{Binding MyList}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text = "{Binding Name}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

请注意我还包含了ItemTemplate。通过此,您可以在ListView中指定单元格的外观。您还应该注意到Name属性已移至那里。

这意味着最高级别的ListView会从BindingContext获取指定ListView的属性,而ListView内的属性具有不同的范围,即它在ItemsSource中的对象类型的范围,在我们的例子中是ObservableCollection<ServiceRequestType>,您可以从单元格中的那些类型访问属性。

TextCell只是一个例子,有multiple types或者您可以撰写自己的作品。