2008-09-16 14 views
10

Ich habe ein DataGrid, gefüllt mit Objekten in einer ArrayCollection. Nach dem Aktualisieren eines der Felder des Objekts möchte ich den Bildschirm aktualisieren. Die Datenquelle ist nicht bindbar, weil ich sie zur Laufzeit konstruiere (und ich verstehe nicht, wie man sie im laufenden Betrieb binden kann - das ist eine andere Frage).Was ist der Unterschied zwischen invalidateList und invalidateDisplayList?

In dieser Situation scheint nichts passiert, wenn ich InvalidateDisplayList() auf dem Raster aufrufen. Aber wenn ich invalidateList() aufrufen, passieren die Updates. (Und es ist auch sehr flüssig - kein Flimmern, wie ich es von einem WIN32-Fenster erwarten würde.)

Also die Frage: Was ist der Unterschied zwischen InvalidateList und InvalidateDisplayList? Aus der Dokumentation scheint es, dass entweder einer funktionieren sollte.

Antwort

18

invalidateList erzählt die Komponente, die die Daten geändert haben, und es muss es neu zu laden und es wieder zu machen.

invalidateDisplayList teilt der Komponente mit, dass sie sich neu zeichnen muss (aber nicht unbedingt ihre Daten neu laden muss).

+0

Gibt es eine ähnliche Funktion für Actionscript, um einen MovieClip/Sprite zu aktualisieren. Zum Beispiel nach dem Ändern eines Mischmodus zur Laufzeit. Der Clip wird nicht automatisch aktualisiert. –

+0

Fahim; Nein - dies sind Flex-spezifische Methoden. –