Xamarin Forms,在 运行 上的 CarouselView 中动态添加项目,奇怪的行为

Xamarin Forms, Adding items dynamically inside CarouselView on the run, Strange Behaviour

我使用相同的 DataTemplate 来填充我的 CarouselView 中的一些视图:一个带有 ContentView 的 XAML 文件。我将一个自定义 class 列表分配给轮播视图的 ItemsSource,并在模板布局字段中使用绑定来用我的自定义 class 的属性填充它们。一切正常。奇怪的部分来了:假设模板中有一个按钮,当您在屏幕上单击它时,带有“Well Done”文本的标签将添加到显示的轮播视图的当前 Stacklayout 中。这是由我的模板 XAML 的代码隐藏完成的。这也可以,但我希望这个“做得好”在我来回滑动足够多之后消失。因为它不是模板的一部分。它不会消失,相反,我每 4 次滑动就会在其他转盘上看到它一次,并且它会被替换,我的意思是如果我来回滑动它会出现在不同的转盘上。为了让它完全消失,我必须从共享相同 DataTemplate 的视图中滑开。我无法理解这种行为背后的机制。我知道,我可以在模板内创建另一个字段,将“做得好”文本放在那里,并在适当的时候显示它。但我想了解机制。谢谢。

就问题提出正确的问题是任何解决方案的关键.. 在意识到我在更新评论中提到的之后,我搜索了 DataTemplate Caching 并在 Xamarin.Forms Github 上发现了这个问题 post:https://github.com/xamarin/Xamarin.Forms/issues/9200

您可以在其中找到有关 CollectionView 设计方式的解释并了解行为背后的机制。没有错误。这是设计使然。