我想要 WPF 中的高效日志查看器控件,它只是在添加消息时显示实时日志。连接到来自日志系统的通知是没有问题的,但我担心一旦日志行的数量变大,日志窗口会随着每个附加的日志行而爬行。
日志通知事件将简单地提供一个日志字符串(以及一些元数据),我想将其附加到 TextBox 中的行或类似的带有滚动条的行中。假设有足够的内存,添加大量行不应该是内存问题,但我不希望系统在添加第 10,000 行后变慢。
我假设一旦字符串达到 MB 大小和数千行,将 TextBox 绑定(bind)到简单的字符串依赖属性会变得相当慢。
如何在 WPF 中有效地编写这样的控件?
最佳答案
为什么不使用列表框?创建一个集合,您每次都在其中添加日志消息,然后将此集合绑定(bind)到您的 itemscontrol itemssource。
编辑:
我在我的项目中使用数据网格来显示来自 WCF 服务的消息
编辑2:
一些 Itemss 控件具有以下 property这应该有助于:
<ListBox VirtualizingStackPanel.IsVirtualizing="True" />
关于wpf - WPF 中高效的实时日志查看器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5989052/