ListViewCachingStrategy、RecycleElement 有问题吗?
Is the ListViewCachingStrategy, RecycleElement, buggy?
我和几个人一起做一个项目已经很长时间了,在所有的功能中,用户可以通过列表搜索另一个。我们正在使用 Xamarin 的 ListView 控件,我们通过将 ListViewCachingStrategy 设置为 RecycleElement 来优化其性能。到目前为止,一切都运行良好,我们通过在后端使用 ElasticSearch 改进了时间响应。
我们只显示用户的信息,并允许连接的用户通过点击所需的单元格打开其他人的页面。事情是我们最近实施了一项新功能,允许他/她通过位于单元格中的按钮打开列表的第二个控件。为此,我们在 UserViewModel 中设置了一个命令,初始化我们需要的一切,并设置绑定到这个新控件的 IsVisible 属性 的 bool,但是当这个触发(命令)时,我们不进入 UserViewModel对应我们想要的用户。
更准确地说,这个问题只出现在前六个用户之后(页面出现后显示的第一批用户),如果我们向下滚动,用户的信息就会正确更新,所以理论上,通过点击按钮,我们应该将命令触发到所需用户的 ViewModel 中,对吗?然而,情况并非如此,因为我们总是会成为前六个 UserViewModels 之一...
我一直在查看 Google 是否有人遇到过同样的问题,但 none 结果与我的相似,但我确实了解到 RecycleElement 在 Android。我的问题自然是:现在还是这样吗?如果没有:有人遇到过类似的问题吗?
此外,我们的 ListView 的 itemSource 是一个简单的列表,而不是一些人可能建议使用的 ObservableCollection。它会导致这样的问题吗?我希望我的解释足够清晰,如果您需要任何细节,请告诉我。我真的很想调试这种情况...
提前感谢所有阅读我的 post 并花时间回复的人。
最好的问候,
MT WSM
一个名叫 DanieIL(所有功劳都归功于他)的人在 Xamarin 的官方论坛上回复了我,他的领导帮助我解决了我的问题。 Here is the link *
诀窍就是创建自定义视图单元格并重新设置给定控件的 BindingContext。由于问题是即使列表视图项的 BindingContext 值正在更新,控件也不是这种情况。因此,通过强制它,它工作得很好!
此致,
MT WSM
我和几个人一起做一个项目已经很长时间了,在所有的功能中,用户可以通过列表搜索另一个。我们正在使用 Xamarin 的 ListView 控件,我们通过将 ListViewCachingStrategy 设置为 RecycleElement 来优化其性能。到目前为止,一切都运行良好,我们通过在后端使用 ElasticSearch 改进了时间响应。
我们只显示用户的信息,并允许连接的用户通过点击所需的单元格打开其他人的页面。事情是我们最近实施了一项新功能,允许他/她通过位于单元格中的按钮打开列表的第二个控件。为此,我们在 UserViewModel 中设置了一个命令,初始化我们需要的一切,并设置绑定到这个新控件的 IsVisible 属性 的 bool,但是当这个触发(命令)时,我们不进入 UserViewModel对应我们想要的用户。
更准确地说,这个问题只出现在前六个用户之后(页面出现后显示的第一批用户),如果我们向下滚动,用户的信息就会正确更新,所以理论上,通过点击按钮,我们应该将命令触发到所需用户的 ViewModel 中,对吗?然而,情况并非如此,因为我们总是会成为前六个 UserViewModels 之一...
我一直在查看 Google 是否有人遇到过同样的问题,但 none 结果与我的相似,但我确实了解到 RecycleElement 在 Android。我的问题自然是:现在还是这样吗?如果没有:有人遇到过类似的问题吗?
此外,我们的 ListView 的 itemSource 是一个简单的列表,而不是一些人可能建议使用的 ObservableCollection。它会导致这样的问题吗?我希望我的解释足够清晰,如果您需要任何细节,请告诉我。我真的很想调试这种情况...
提前感谢所有阅读我的 post 并花时间回复的人。 最好的问候,
MT WSM
一个名叫 DanieIL(所有功劳都归功于他)的人在 Xamarin 的官方论坛上回复了我,他的领导帮助我解决了我的问题。 Here is the link *
诀窍就是创建自定义视图单元格并重新设置给定控件的 BindingContext。由于问题是即使列表视图项的 BindingContext 值正在更新,控件也不是这种情况。因此,通过强制它,它工作得很好!
此致,
MT WSM