我有这种方法:
private async Task DisplayVideos(string query)
{
var videoObj = await _mediaService.GetVideos(query);
Videos = videoObj.Hits;
var size = "640x360";
var picIdList = videoObj.Hits.Select(x=>x.Picture_id).ToList();
foreach (var pic in picIdList)
{
PictureId = $"https://i.vimeocdn.com/video/{pic}_{size}.jpg";
}
}
此方法命中api端点并获取视频对象。我想从视频对象中获取picture_id并手动设置大小,然后将参数输入到特定的url中,然后像上面一样,将我在xaml中的图像的绑定上下文设置为该特定的url。
但是,以上问题是我将PictureId设置为该列表中的最后一个URL。我该如何解决它,以便获得图片ID列表,并且在列表视图中,每个单元格都有一个图像绑定。我正在使用FlowListView布局。
这是我的xaml:
<flv:FlowListView FlowColumnCount="2" SeparatorVisibility="None" HasUnevenRows="true"
FlowItemTappedCommand="{Binding ItemTappedCommand}"
FlowItemsSource="{Binding Videos}" >
<flv:FlowListView.FlowColumnTemplate>
<DataTemplate>
<Image Aspect="AspectFill" HeightRequest="200" Source="{Binding PictureId}" />
</DataTemplate>
</flv:FlowListView.FlowColumnTemplate>
</flv:FlowListView>
答案 0 :(得分:0)
我们假设GetVideos
()返回一个List<Video>
,并且Video
是您在代码中定义的一个类,因此可以对其进行修改。
只需向Video类添加一个只读属性,该属性将返回图像的网址
public string PictureUrl {
get {
$"https://i.vimeocdn.com/video/{Picture_Id}_640x360.jpg";
}
}