当我运行下面的代码时,我得到下面的错误信息:
Java.语言.非法状态异常:'指定的子系已经有父系。您必须先在子系的父系上呼叫removeView()。'
<CarouselView>
<CarouselView.ItemsSource>
<x:Array Type="{x:Type ContentView}">
<ContentView></ContentView>
<ContentView></ContentView>
<ContentView></ContentView>
</x:Array>
</CarouselView.ItemsSource>
<CarouselView.ItemTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding .}"/>
</DataTemplate>
</CarouselView.ItemTemplate>
</CarouselView>
我不知道是否允许您这样设置CarouselView的ItemsSource,但当我尝试使用绑定时,我得到了相同的错误消息。
1条答案
按热度按时间zvms9eto1#
根据this maui issue,要像这样直接使用Maui ContentView,必须将CarouselView的
Loop
属性设置为false
:后果:视图不会形成“循环”:无法从上一个视图扫回第一个视图。
如果您需要“循环”行为,另一种方法是不在xaml中定义ItemsSource。相反,使用一个不包含UI类的ItemsSource,并使用一个DataTemplate或DataTemplateSelector来定义(或引用)所需的UI类(基于每个项)。[项是一个“模型”;模板使用绑定通过UI元素表示模型。]