我正在尝试使用CarouselView
List
填充ContentView
。有人可以帮忙吗?
我已经尝试了2天,但是我得到了一个空白页面。在我的测试中,新的内容视图实际上有数据,但我为了简单起见而剥离了它。如果我手动将它们设置为内容而不是CarouselView
,则会显示其内容。
代码隐藏
List<ContentView> viewList = new List<ContentView>();
viewList.Add(new ContentView()); //Data Entry for Book information
viewList.Add(new ContentView()); //Data Entry for Widget information
viewList.Add(new ContentView()); //Data Entry for Quijibo information
var myCarousel = new CarouselView.FormsPlugin.Abstractions.CarouselViewControl();
myCarousel.ItemsSource = viewList;
myCarousel.ItemTemplate = new DataTemplate(typeof(ContentView));
myCarousel.Position = 1; //default
myCarousel.Orientation = CarouselViewOrientation.Horizontal;
myContentPresenter.Content = myCarousel;
XAML
<ContentPresenter x:Name="myContentPresenter" />
第二次尝试,我想回到可以通过谷歌搜索YouTube Video by Houssem Dellai运行的示例,然后尽可能少地修改它。仍然是一个空白的屏幕。
背后的代码
var NameList = new List<ContentView>();
NameList.Add(new ContentViewBook());
NameList.Add(new ContentViewWidget());
NameList.Add(new ContentViewQuijibo());
//var NameList = new List<string> { "A", "B", "C" }; This works with XAML Label
mainCarouselView.ItemsSource = NameList;
XAML
<controls:CarouselViewControl x:Name="mainCarouselView" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<controls:CarouselViewControl.ItemTemplate>
<DataTemplate>
<!--<Label Text="{Binding .}" /> This works with List<String>-->
<ContentView Content="{Binding .}" />
</DataTemplate>
</controls:CarouselViewControl.ItemTemplate>
</controls:CarouselViewControl>
这是手动完成时可以使用的代码。我使用MR.Gestures
来抓住滑动并更改内容。哪个有效,但似乎并没有很好地抓住滑动。
背后的代码
myContentView.Content = new ContentViewQuijibo();
XAML
<ContentView x:Name="myContentView" />