WPF中高效的实时日志查看器

时间:2011-05-13 08:09:45

标签: wpf

我想在WPF中使用一个高效的日志查看器控件,它只是在添加消息时显示实时日志。连接来自日志系统的通知是没有问题的,但我担心一旦日志数量变大,日志窗口就会随着每个附加日志行进行爬行。

日志通知事件将仅提供一个日志字符串(以及一些元数据),我想要附加到TextBox中的行或带有滚动条的类似行。假设有足够的内存,追加大量的行不应该是内存问题,但我不希望系统在添加行号10,000后放慢速度。

我认为一旦字符串进入MB大小和数千行,将TextBox绑定到一个简单的字符串依赖属性就会变得相当慢。

如何在WPF中有效地编写这样的控件?

1 个答案:

答案 0 :(得分:11)

为什么不使用列表框?创建一个集合,每次都添加日志消息,并将此集合绑定到itemscontrol itemssource。

编辑: 我在我的项目中使用数据网格来显示来自WCF服务的消息

EDIT2: 一些Itemsscontrols有以下property应该有所帮助:

<ListBox VirtualizingStackPanel.IsVirtualizing="True" />