【发布时间】:2017-09-12 13:47:39
【问题描述】:
在 Xamarin Form 上,有行数据但没有内容,并且只显示一行并且为空。
在模型中:
public class Item
{
public string kind { get; set; }
public string etag { get; set; }
public string id { get; set; }
public Snippet snippet { get; set; }
public ContentDetails contentDetails { get; set; }
public Status status { get; set; }
public Statistics statistics { get; set; }
}
public class RootObject
{
public string kind { get; set; }
public string etag { get; set; }
public string nextPageToken { get; set; }
public PageInfo pageInfo { get; set; }
public List<Item> items { get; set; }
}
在视图模型中
private ObservableCollection<TrendingModel.RootObject> _trendingRoots;
private readonly ITrendingService _trendingService;
public ObservableCollection<TrendingModel.RootObject> TrendingRoots
{
get { return _trendingRoots; }
set
{
_trendingRoots = value;
RaiseProtertyChanged(()=>TrendingRoots);
}
}
......
TrendingRoots = new ObservableCollection<TrendingModel.RootObject>(ridesResult);
结果是'TredingRoots' -> TrendinRoot[0].items[i].sn-p..... 在视图中,列表视图:
<ListView x:Name="lstHome" ItemsSource="{Binding TrendingRoots}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout
Orientation="Horizontal">
<Image
Source="{Binding items.snippet.thumbnails.medium}"
Aspect="AspectFit"
WidthRequest="220"
HeightRequest="220"
HorizontalOptions="Center"
VerticalOptions="Center" />
<Label
Text="{Binding items.snippet.title}"
HorizontalOptions="Center"
VerticalOptions="Center">
</Label>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
最终结果是listview有1个item,这个item是空的,在while中,
- 结果必须有 15 项。
- 在listview item上显示每个item(当前为空,无法绑定)
【问题讨论】:
-
请提供一些附加信息。目前尚不清楚您想要实现什么。
-
您的 ItemSource 应该是您的 RootObject 的 items 属性,而不是 RootObjects 的集合
-
已更新。数据为 15 项,但无法绑定到 listview。
-
问题是您在 ItemTemplate 中的绑定:
{Binding items.snippet.title}。items是一个列表,无法将列表项绑定到单个文本元素。如果要显示所有项目,则必须在 ItemTemplate 中实现另一个 ListView。 -
@Jason 所以它没有
标签: c# xamarin mvvm xamarin.forms