2009-06-02 6 views
0

Ich habe ein Problem mit einem benutzerdefinierten ItemRenderer, den ich für ein DataGrid geschrieben habe. Bei diesem ItemRenderer ist es möglich, dass der Inhalt die Breite und Höhe der DataGrid-Zelle überschreitet. Wenn dies geschieht, werden Bildlaufleisten angezeigt, sodass ich durch die einzelnen Zellen blättern kann.Ist es möglich, einen benutzerdefinierten ItemRenderer zum Scrollen des DataGrid statt seiner Zelle zu erhalten?

Was ich jedoch möchte, ist, dass, wenn der Inhalt der Zelle zu groß ist, das gesamte DataGrid scrollt, anstatt die einzelnen Zellen.

Wenn ich nun die horizontalen und vertikalen Bildlaufleistenrichtlinien des benutzerdefinierten ItemRenderer auf "aus" setze, bekomme ich das vertikale Scrollen auf dem DataGrid, das ich möchte (die einzelnen Zellen dehnen sich auf die volle Höhe des Inhalts aus), aber ich Erhalte kein horizontales Scrollen. Stattdessen wird jeder Inhalt, der für die Zelle zu breit ist, abgeschnitten. Wenn Sie die horizontale Bildlaufleiste des DataGrids auf "Ein" setzen, hat dies keine Auswirkung. Der Bildlaufleisten-Rinning wird gezeichnet, aber nichts scrollt.

Gibt es eine Möglichkeit, das DataGrid horizontal zu scrollen, wenn der Inhalt meines benutzerdefinierten ItemRenderer zu weit ist für die Zelle?

Antwort

0

Sie müssen möglicherweise eine Möglichkeit finden, die Größe des DataGrid horizontal in einer Zeichenfläche zu berechnen und zu erweitern, so dass es alle Zellen anzeigt, und die Bildlaufleiste würde als Teil der Zeichenfläche angezeigt.

+0

Ich habe damit gespielt, ohne Erfolg. Das Problem hierbei ist, dass der benutzerdefinierte Elementrenderer im DataGrid als "ClassFactory" und nicht als konkrete Instanz einer Art von UIComponent referenziert wird. Das bedeutet, dass ich die Breite meines Elementrenderers zur Laufzeit nicht bestimmen kann, um die Breite des DataGrids zu aktualisieren. Irgendwelche Gedanken? – Dan

+0

Sie könnten jedoch in der Lage sein, die Breite der Zelle zu greifen. – CookieOfFortune

+0

Eigentlich versuchen Sie, in den Quellcode für das DataGrid zu tauchen, es enthält einen Verweis auf den ItemRenderers, aber das Problem ist, dass Renderer wiederverwendet werden, die Logik dahinter herauszufinden, welche angezeigt werden oder nicht, könnte jedoch verwirrend sein. – CookieOfFortune

Verwandte Themen