Effizienter Live-Log-Viewer in WPF

8

Ich möchte ein effizientes Protokoll-Viewer-Steuerelement in WPF, das einfach ein Live-Protokoll anzeigt, während Nachrichten hinzugefügt werden. Es ist kein Problem, sich mit Benachrichtigungen aus dem Log-System zu verbinden, aber ich befürchte, dass ein Log-Fenster mit jeder angehängten Log-Zeile kriechen wird, sobald die Anzahl der Log-Zeilen größer wird.

Die Protokollbenachrichtigungsereignisse stellen einfach eine Protokollzeichenfolge (zusammen mit einigen Metadaten) bereit, die ich an die Zeilen in einer TextBox oder ähnlichem mit einer Bildlaufleiste anhängen möchte. Wenn Sie viel Speicher verwenden, sollte das Anhängen einer großen Anzahl von Zeilen kein Speicherproblem sein, aber ich möchte nicht, dass das System langsamer wird, sobald die Zeile 10.000 hinzugefügt wird.

Ich nehme an, dass das Binden einer TextBox an eine einfache String-Abhängigkeits-Eigenschaft ziemlich langsam wird, sobald die Zeichenfolge in die MB-Größe und Tausende von Zeilen gelangt.

Wie könnte ich ein solches Steuerelement effizient in WPF schreiben?

    
Holstebroe 13.05.2011, 08:09
quelle

1 Antwort

11

Warum nicht eine Listbox benutzen? Erstellen Sie eine Sammlung, in der Sie jedes Mal Ihre Protokollnachricht hinzufügen und diese Sammlung einfach an Ihre itemscontrol item-Quelle binden.

BEARBEITEN: Ich verwende ein Datagrid in meinen Projekten, um Nachrichten anzuzeigen, die vom WCF-Dienst kommen

EDIT2: Einige Items-Steuerelemente haben die folgende Eigenschaft , die helfen sollte:

%Vor%     
blindmeis 13.05.2011, 08:39
quelle

Tags und Links