尝试在我的列表中仅显示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>
答案 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或者您可以撰写自己的作品。