Leistungsproblem, während LayoutTransform auf DataGridCell-Inhalt angewendet wird

9

Ich habe ein benutzerdefiniertes Datagrid, dessen Zelle wie folgt formatiert ist:

%Vor%

Das Datagrid wird wie folgt formatiert:

%Vor%

Im Datagrid werden Zeilen dynamisch mit einem Hintergrundthread hinzugefügt und können Tausende von Daten enthalten. Es gibt ein Leistungsproblem mit dem Datagrid. Die CPU-Auslastung nimmt weiter zu.

Ich habe herausgefunden, dass der Grund LayoutTransform ist. Wenn ich Height von DataGridCell oder Width von Grid , das der Inhalt der Zelle ist, einstelle, wird die CPU-Nutzung reduziert. Aber ich kann das nicht gleich codieren. Die Breite sollte basierend auf der Länge des Inhalts festgelegt werden.

Fest codierte Höhe einstellen:

%Vor%

Festcodierte Breite einstellen:

%Vor%

Zuerst habe ich versucht, einen Konverter zu binden, an den Inhalt übergeben und die Breite berechnet und an die Width -Eigenschaft von Grid zurückgegeben wird. Dies verursacht ein Flackern, während neue Daten hinzugefügt werden und die CPU-Auslastung erhöht wird.

%Vor%

Zweitens habe ich LayoutTransform durch RenderTransform ersetzt. Die Breite der Zelle wird nicht basierend auf dem Inhalt erhöht, was dazu führt, dass nur ein Teil der Daten angezeigt wird.

Drittens habe ich versucht, eine Eigenschaft an Height von DataGridCell zu binden, die dynamisch mit der höchsten Breite des Wertes in DataGridCell aktualisiert wird. Dies verbraucht auch CPU-Auslastung.

Gibt es eine andere Alternative, um das Ergebnis von LayoutTransform anders als RenderTransform zu erreichen?

Ich freue mich auf jede Art von Eingabe / Vorschlägen. Danke.

    
Subru 19.01.2016, 13:03
quelle

1 Antwort

0

Ich würde versuchen, die Transformation in der Rendering-Logik selbst vorzunehmen. Ich habe das selbst nicht ausprobiert, aber ich denke, es ist einen Versuch wert, um zu sehen, ob dies eine ähnliche Leistung wie die Verwendung von RenderTransform bietet, während Sie auch das Ergebnis geben, das Sie suchen, wenn Sie RotatedText anstelle von% verwenden. co_de% mit TextBlock :

%Vor%     
Chiune Sugihara 20.05.2016 04:50
quelle

Tags und Links