我有一个使用SQLite创建的数据库。我正在使用Xamarin.Forms。我想使用CarouselView.FormsPlugin显示图像的轮播,尽管我看过文档,但在我的应用程序上显示它并没有运气。
我在Android MainActivity.cs文件中有CarouselViewRenderer.Init()。但是,没有图像显示。
XAML:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:forms="clr-namespace:CarouselView.FormsPlugin.Abstractions;assembly=CarouselView.FormsPlugin.Abstractions"
x:Class="HostelRentalApp.HostelDetailsPage">
<ContentPage.Content>
<StackLayout>
<forms:CarouselViewControl x:Name="CRSLImages" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<forms:CarouselViewControl.ItemTemplate HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<DataTemplate>
<Image Source="{Binding .}"/>
</DataTemplate>
</forms:CarouselViewControl.ItemTemplate>
</forms:CarouselViewControl>
</StackLayout>
</ContentPage.Content>
</ContentPage>
CS:
public HostelDetailsPage (HostelInfo hostel)
{
var images = App.Database.GetHostelImageList(0);
this.CRSLImages.ItemsSource = images;
}
SQLite查询:
public List<HostelImages> GetHostelImageList(int id)
{
return database.Query<HostelImages>("SELECT Image FROM HostelImages WHERE Hostel_id = ?", id);
}
查询返回正确的行。如图所示,使用跟踪点时,将检索图像文件名。但是,图像未显示在UI上。我究竟做错了什么?谢谢。
[ItemsSource
是List<HostelImages>
,因此您的绑定路径应为
<Image Source="{Binding Image}"/>