将项目附加到ListView?

时间:2015-05-24 18:55:06

标签: c# asp.net

检查了一个小时,找不到我的问题的答案......

我正在创建一个基于MessagesTimeStamp显示RoomID的聊天室应用。我目前正在使用ListView,每次发现新邮件时都会调用DataBind()。我使用变量List<Message> DisplayedMessages作为数据存储,并在每次要向用户显示最新消息时使用MessageList.DataSource = DisplayedMessages; MessageList.DataBind()。这些邮件还有一个名为nullable的{​​{1}}列,其中包含直接显示在ImageID中的缩略图图像的URL。问题是,如果用户ListView使用缩略图图片获得5000 DisplayedMessages的计数,我会担心性能问题。这意味着每次发布新消息时,系统都必须检索至少5000个缩略图。

我想知道是否有办法简单地项添加到Messages而不会中断以前添加的项目。如果是这种情况,我可以将新发现的ListView添加到用户的Messages,同时保留已发布的ListView。我有一个Messages,我希望有一种方法可以拍几条消息而不必每隔几秒钟获取整个数据源。

我喜欢UpdatePanel控件的行为,并且成功使用它直到插入图像,包含多行消息和其他一些问题。我发现ListBox更灵活,但我愿意在必要时完全改变控件。感谢阅读,感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在其中一个人中填写您的列表:https://msdn.microsoft.com/en-us/library/ms668604%28v=vs.110%29.aspx

将ItemsSource设置为ObservableCollection,然后使用ObservableCollection.Add()附加新消息。这应该工作。您不必对ListView执行任何其他操作,因为ObservableCollection将通知它任何更改。