c# - 如何在设置属性之前将属性绑定到我操作的 xaml?
问题描述
我有这个方法:
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 布局。
这是我的xml:
<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>
解决方案
假设GetVideos
() 返回 a List<Video>
,这Video
是您在代码中定义的类,因此您可以修改它。
只需向 Video 类添加一个只读属性,该属性将返回图像的 url
public string PictureUrl {
get {
$"https://i.vimeocdn.com/video/{Picture_Id}_640x360.jpg";
}
}
推荐阅读
- firebase - Firebase iOS SDK 无法访问代理后面的实时数据库
- android - 在 Xamarin Android 中启动一个新的 Activity 而不会中断当前的 Activity?
- python - 打印 pyspark 数据框列中的所有类别
- javascript - 在firebase中查找集合长度
- windows - 将分钟(整数)及时添加到批处理文件
- c# - 如果文本框为空,则数据库中的自动空值
- javascript - 如何处理异步循环函数中的等待调用-nodejs
- android - 我怎样才能像这个应用程序一样自动添加这个扫描号码和设置文本?
- ios - 需要帮助为 swift 应用程序创建深度链接/动态链接
- webview - Xamarin.Forms 使用 webview 发出 Http POST 请求