我有 1 个图像,但它应该能够在 Listview 中接收 2 个绑定路径之一
<Label x:Name="something" Text="{Binding name}" FontSize="Large" FontAttributes="Bold"/>
<ffimageloading:CachedImage HorizontalOptions="Center" VerticalOptions="Center"
WidthRequest="150" HeightRequest="150"
DownsampleToViewSize="true"
Source="{Binding images[0].src, }">
</ffimageloading:CachedImage>
该产品是 2 种单品或多品中的一种
如果它是多,则绑定从
Source="{Binding images[0].src }">
到
Source="{Binding image.src }">
注意:我使用的是 API 包装器,所以我的模型是一种预设我看到文档提到回退不能有绑定
对此的任何解决方案
当您的数据从 API 返回时,您可以处理逻辑:
让我们假设如果您像单个模型一样从 API 获取数据,您可以:
myModel model = new myModel() { name = "test", type = "single" , image = new myImage() { src ="myUrl"} };
if (model.type is "single")
{
model.imageUrl = model.image.src;
}
else
{
model.imageUrl = model.images[0].src;
}
如果你从像 ObservableCollection 这样的 API 获取数据,你可以:
ObservableCollection<myModel> itemModels = new ObservableCollection<myModel>();
itemModels.Add(new myModel() { name = "test", type = "single", image = new myImage() { src = "myUrl" } });
itemModels.Add(new myModel() { name = "test", type = "Multi", image = new myImage() { src = "myUrl" } , images = new List<myImage> { new myImage() { src = "url"} } });
foreach (myModel item in itemModels)
{
if (item.type is "single")
{
item.imageUrl = model.image.src;
}
else
{
item.imageUrl = model.images[0].src;
}
}
然后在 xaml 中,绑定到imageUrl
:
<ffimageloading:CachedImage HorizontalOptions="Center" VerticalOptions="Center"
WidthRequest="150" HeightRequest="150"
DownsampleToViewSize="true"
Source="{Binding imageUrl}">
</ffimageloading:CachedImage>
这是我为测试创建的一些模型:
public class myModel {
public string name { get; set; }
public string type { get; set; }
public string imageUrl { get; set; }
public List<myImage> images { get; set; }
public myImage image;
}
public class myImage {
public string src { get; set; }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句