从轮播页面转到轮播视图

时间:2019-11-23 08:17:39

标签: xamarin xamarin.forms

我在页面上阅读了以下消息:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/carousel-page

  

CarouselPage已被CarouselView取代,   提供可滚动的布局,用户可以在其中滑动以在   项目集合。有关CarouselView的更多信息,请参见   Xamarin.Forms CarouselView。

在这方面,我决定开始使用CarouselView。 但是,当我尝试使用轮播查找页面轮播并收到错误消息时:ElementTemplateContent属性设置了多次。

<CarouselView xmlns="http://xamarin.com/schemas/2014/forms" 
       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
       xmlns:d="http://xamarin.com/schemas/2014/forms/design"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       mc:Ignorable="d"
       xmlns:local="clr-namespace:test.Views"     
       x:Class="test.Corusel">
    <CarouselView.ItemTemplate>
        <DataTemplate>
            <local:Page1></local:Page1>
            <local:Page2></local:Page2>
        </DataTemplate>

    </CarouselView.ItemTemplate>
</CarouselView>

这是我想要得到的结果。

<CarouselPage xmlns="http://xamarin.com/schemas/2014/forms" 
       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
       xmlns:d="http://xamarin.com/schemas/2014/forms/design"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       mc:Ignorable="d"
       xmlns:local="clr-namespace:test.Views"     
       x:Class="test.Corusel">
    <CarouselPage.Children>
            <local:Page1></local:Page1>
            <local:Page2></local:Page2>
    </CarouselPage.Children>

我想使用轮播视图,因为我需要指标。

2 个答案:

答案 0 :(得分:1)

您的DataTemplate包含2个子元素。删除其中一个即可。

DataTemplate内只能有1个模板内容。

如果您想同时使用这两个页面,则可以将两个页面以StackLayoutContentViewContentPage等任意单个布局添加:

<CarouselView xmlns="http://xamarin.com/schemas/2014/forms" 
   xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
   xmlns:d="http://xamarin.com/schemas/2014/forms/design"
   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
   mc:Ignorable="d"
   xmlns:local="clr-namespace:test.Views"     
   x:Class="test.Corusel">
<CarouselView.ItemTemplate>
    <DataTemplate>
        <StackLayout>
              <local:Page1></local:Page1>
              <local:Page2></local:Page2>
        </StackLayout>
    </DataTemplate>

</CarouselView.ItemTemplate>

您可以将两个页面代码合并为一个页面

答案 1 :(得分:1)

如果您需要用于不同项目的不同模板,则可以使用DataTemplateSelectorhttps://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/carouselview/populate-data#choose-item-appearance-at-runtime