【问题标题】:Xaml ListView strange behavior (Windows Phone 8.1)Xaml ListView 奇怪的行为(Windows Phone 8.1)
【发布时间】:2016-03-23 14:15:02
【问题描述】:

我正在开发 Windows Phone 应用程序 (Windows Phone 8.1),我的 ListView 控件有一个奇怪的行为。

我有一个带有文本项的ListView(类似于聊天),它绑定到ReadOnlyObservebleCollection,我在写新消息或收到新消息时向其插入项目。我用我的DataTemplateSelector 选择我的ListView 项目模板。

问题:

有时,当我的ListView 为空时,我会在我的 ListView 中添加一条新消息,我在屏幕上看不到它,但我可以在我的收藏中看到它,并且我确定 RaisePropertyEvent被解雇了。

当我继续向集合中添加新项目时,我可以向下滚动列表(第一个 idex 中有某种占位符),然后我会看到其余项目 - 除了第一个项目。

我还注意到丢失的项目正在到达 DataTemplateSelector 并且它返回了正确的模板。

越来越奇怪,当我刷新视图时 - 所有项目(包括第一个)都在正确的位置。

我猜第一代项目有问题,但我没有遇到任何绑定异常等。

我们将不胜感激。

【问题讨论】:

  • 你可以为 ListView 控件显示你的 xaml 吗?
  • 我可以发布一些 xaml 代码,但这将是一个带有 ItemSource 绑定的简单 ListView 声明

标签: c# xaml listview binding windows-phone-8.1


【解决方案1】:

我的 ListView 中也出现了同样的问题。发生这种情况是因为在将第一个项目添加到我的可观察集合时未加载列表视图(未触发加载事件)。为了解决这个问题,我在引发 listview 加载事件后开始在我的 observable 集合中添加项目。

【讨论】: