繁体   English   中英

MVVM无法将ObservableCollection绑定到ListView

[英]Can't binding ObservableCollection to ListView by MVVM

在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; }
    }

在ViewModel中

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] .snippet .....在视图上,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个项目,而这个项目为空,

  • 结果必须有15个项目。
  • 在列表视图项目上显示每个项目(当前为空,无法绑定)
<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM