使用List <contentview>的Xamarin CarouselView

时间:2017-04-28 07:36:50

标签: c# xaml xamarin carousel

我正在尝试使用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" />

0 个答案:

没有答案