C# 无法通过MVVM将ObservableCollection绑定到ListView
在Xamarin表单上,具有行数据但没有内容,只显示一行及其空行 在模型中:C# 无法通过MVVM将ObservableCollection绑定到ListView,c#,xamarin,mvvm,xamarin.forms,C#,Xamarin,Mvvm,Xamarin.forms,在Xamarin表单上,具有行数据但没有内容,只显示一行及其空行 在模型中: public class Item { public string kind { get; set; } public string etag { get; set; } public string id { get; set; } public Snippet snippet { get; set; } public Conte
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]。项[i]。代码段。。。。。
查看时,ListView:
<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个项,而该项为空,在while中
结果必须有15项。
显示listview项目上的每个项目当前为空,无法绑定
请提供一些补充资料。不清楚您想要实现什么。您的ItemSource应该是RootObject的items属性,而不是RootObjectsupdated的集合。数据为15项,但无法绑定到listview。问题在于ItemTemplate中的绑定:{binding items.snippet.title}。items是一个列表,无法将列表项绑定到单个文本元素。如果要显示所有项目,必须在ItemTemplate中实现另一个ListView。@因此它没有
<ListView x:Name="lstHome" ItemsSource="{Binding TrendingRoots[0].items}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout
Orientation="Horizontal">
<Image
Source="{Binding snippet.thumbnails.medium}"
Aspect="AspectFit"
WidthRequest="220"
HeightRequest="220"
HorizontalOptions="Center"
VerticalOptions="Center" />
<Label
Text="{Binding snippet.title}"
HorizontalOptions="Center"
VerticalOptions="Center">
</Label>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>