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

Hol*_*roe 8 wpf

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

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

我假设一旦字符串进入MB大小和数千行,将TextBox绑定到简单的字符串依赖属性将变得相当慢.

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

bli*_*eis 11

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

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

EDIT2:一些Itemsscontrols具有以下属性,应该有所帮助:

<ListBox VirtualizingStackPanel.IsVirtualizing="True" />
Run Code Online (Sandbox Code Playgroud)