我有一个网络服务,我从json字符串获取imageurl。但我想错误的绑定部分。没有显示任何图像。这是我的代码。
的Xaml:
moveTaskToBack(true)
这是我的get json服务代码;
<cv:CarouselView ItemsSource="{Binding Path=BindingContext.Hotel.HotelImages, Source={x:Reference HotelDetailPage}}" HeightRequest="200">
<cv:CarouselView.ItemTemplate>
<DataTemplate>
<StackLayout HeightRequest="200">
<Grid HeightRequest="200">
<Image Aspect="AspectFill" Source="{Binding FullPath}"/>
</Grid>
</StackLayout>
</DataTemplate>
</cv:CarouselView.ItemTemplate>
</cv:CarouselView>
注意:我在此示例中获得了帮助:https://blog.xamarin.com/flip-through-items-with-xamarin-forms-carouselview
答案 0 :(得分:0)
您可以验证您要转换的网址是指可访问的链接吗? (我假设一个网址?) 你能给我们完整的代码吗?
只是一个建议,但我注意到您的var酒店在代码隐藏文件中写成'hotel',并在您的XAML文件中写成'Hotel'...
我写了一些关于CarouselView的SO文档,但现在的资料如下。在本文档中,您将找到一个非常简单的示例。也许有想法用您的问题和一些虚拟数据来测试它?
导入CarouselView的最简单方法是使用Xamarin / Visual studio中的NuGet-Packages Manager:
要使用预发行套餐,请务必启用左上角的“显示预发行套餐”复选框。
每个子项目(.iOS / .droid ./。WinPhone)都必须导入此包。
在ContentPage的标题中,插入以下行:
xmlns:cv="clr-namespace:Xamarin.Forms;assembly=Xamarin.Forms.CarouselView"
在标签之间放置CarouselView:
<cv:CarouselView x:Name="DemoCarouselView">
</cv:CarouselView>
x:Name将为您的CarouselView提供一个名称,该名称可用于C#代码隐藏文件。 这是将CarouselView集成到视图中所需的基础知识。 给定的示例不会显示任何内容,因为CarouselView为空。
作为ItemSource的示例,我将使用ObservableCollection字符串。
public ObservableCollection<TechGiant> TechGiants { get; set; }
TechGiant是一个将托管Technology Giants名称的类
public class TechGiant
{
public string Name { get; set; }
public TechGiant(string Name)
{
this.Name = Name;
}
}
在页面的InitializeComponent之后,创建并填充ObservableCollection
TechGiants = new ObservableCollection<TechGiant>();
TechGiants.Add(new TechGiant("Xamarin"));
TechGiants.Add(new TechGiant("Microsoft"));
TechGiants.Add(new TechGiant("Apple"));
TechGiants.Add(new TechGiant("Google"));
最后,将TechGiants设置为DemoCarouselView的ItemSource
DemoCarouselView.ItemsSource = TechGiants;
在XAML文件中,为CarouselView提供一个DataTemplate:
<cv:CarouselView.ItemTemplate>
</cv:CarouselView.ItemTemplate>
定义DataTemplate。在这种情况下,这将是一个标签,其中文本绑定到itemsource和绿色背景:
<DataTemplate>
<Label Text="{Binding Name}" BackgroundColor="Green"/>
</DataTemplate>
就是这样!运行程序并查看结果!