我正在使用xamarin构建一个应用程序,它从webservice获取图像并绑定到轮播视图。
但我看不到图像显示。
这是我的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"/>
它只是工作。但我不希望这=(
谢谢你的帮助。
根据你的评论ItemsSource
是List<ImageSource>
。在这种情况下,绑定是错误的,这是应该如何做到的:
<Image Source="{Binding}"/>