我正在使用xamarin构建一个可从Web服务获取图像并绑定到轮播视图的应用程序。
但是我看不到显示的图像。
这是我的xaml。
<StackLayout HeightRequest="250">
<cv:CarouselView x:Name="carouselViewImage">
<cv:CarouselView.ItemTemplate>
<DataTemplate>
<Image Source="{Binding base}"
VerticalOptions="Center"
HeightRequest="180" WidthRequest="100"/>
</DataTemplate>
</cv:CarouselView.ItemTemplate>
</cv:CarouselView>
</StackLayout>
这是我的代码
ImageSources = await Task.Run(() =>
{
var productViewData = new ProductViewData();
return productViewData.GetProductImages(Product.id.GetValueOrDefault());
});
carouselViewImage.ItemsSource = ImageSources;
我绑定的基础是ImageSource
已更新:
我尝试了另一种创建新类的方法:
class ImageTest
{
public ImageSource Image { get; set; }
}
并使用foreach创建ImageSource的新列表
ImageSources = await Task.Run(() =>
{
var productViewData = new ProductViewData();
return productViewData.GetProductImages(Product.id.GetValueOrDefault());
});
var testImage = new List<ImageTest>();
//Add this foreach
foreach (var imageSource in ImageSources)
{
testImage.Add(new ImageTest { Image = imageSource });
}
carouselViewImage.ItemsSource = testImage;
并更改xaml
<Image Source="{Binding Image}" VerticalOptions="Center" HeightRequest="180" WidthRequest="100"/>
就可以了。但是我不要这个=(
感谢您的帮助。
答案 0 :(得分:1)
根据您的评论ItemsSource
为List<ImageSource>
。在这种情况下,绑定是错误的,这就是应该这样做的方式:
<Image Source="{Binding}"/>