未在Xamarin.CarouselView中显示图像

问题描述 投票:0回答:1

我正在使用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

ImageSources variable

更新:

我尝试另一种创建新类的方法:

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"/>

它只是工作。但我不希望这=(

谢谢你的帮助。

c# xamarin
1个回答
1
投票

根据你的评论ItemsSourceList<ImageSource>。在这种情况下,绑定是错误的,这是应该如何做到的:

<Image Source="{Binding}"/>
© www.soinside.com 2019 - 2024. All rights reserved.