微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Xamarin Forms,在运行时在 CarouselView 中动态添加项目,奇怪的行为

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

解决方法

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

您可以在那里找到对 CollectionView 是如何设计的解释并了解行为背后的机制。没有错误。这是设计使然。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。