【发布时间】:2009-01-10 05:29:07
【问题描述】:
我正在编写一个需要类似日志的视图的应用程序(类似于 IM 客户端在对话中显示消息的方式),每秒可能有很多更新。速度在这里是个问题;由于大量传入事件而导致应用程序锁定是一个可能的问题。我需要选择和基本的文本格式,所以手动渲染可能会变得相当复杂,如果可能的话我想避免它。我还想底部锚定滚动条,即如果它在底部,则在添加新项目时保持在底部。实现这一点的好方法是什么?
【问题讨论】:
我正在编写一个需要类似日志的视图的应用程序(类似于 IM 客户端在对话中显示消息的方式),每秒可能有很多更新。速度在这里是个问题;由于大量传入事件而导致应用程序锁定是一个可能的问题。我需要选择和基本的文本格式,所以手动渲染可能会变得相当复杂,如果可能的话我想避免它。我还想底部锚定滚动条,即如果它在底部,则在添加新项目时保持在底部。实现这一点的好方法是什么?
【问题讨论】:
您可以在 WPF 中非常轻松地实现它。
*实时运行时,您需要 UI 端或数据端虚拟化 查看我的PaginatedObservableCollection,以便 DataVirtualization 自动运行。
【讨论】:
我认为您应该看看 ListView/ListBox 控件,它们支持 UI 虚拟化并提供您正在寻找的功能。您还可以通过数据虚拟化/延迟加载来提高性能 - 即不要在内存中保存不可见的项目并按需加载所需的数据
【讨论】: