• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-08-2008, 14:55   #1 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Flex Komponenten - Update der View erzwingen

Wie kann ich einen Update der View erzwingen? Ich habe eine DateGrid Instanz und eine ArrayCollection als DataProvider. Die ArrayCollection enthält ein Objekt, das wiederum Objekte kapselt. Ich habe einen ItemRenderer gebaut, der je nach angegebenen dataField der DataGridColumn das entsprechende Attribut des gekapselten Objekt heraussucht und darstellt.

Problem: das DataGrid, bzw. der ItemRenderer wird nicht aktualisiert. Füge ich neue Items hinzu, gibt es keine Probleme. Nur beim Ändern der Daten passiert nicht. Hier ein Auszuug aus dem von mx.controls.Text erbenden ItemRenderer:
ActionScript:
  1. override public function set data(value:Object):void {
  2.     if (!(value is MyObject)) {
  3.         return;
  4.     }
  5.  
  6.     this._myObject = MyObject(value);
  7.     this._subObject1 = this._myObject.subObject1;
  8.     this._subObject2 = this._myObject.subObject2;
  9.     this._subObject3 = this._myObject.subObject3;
  10.  
  11.     if (this._myObject.hasOwnProperty(_listData.dataField)) {
  12.         super.text = this._myObject[_listData.dataField];
  13.     } else if (this._subObject1.hasOwnProperty(_listData.dataField)) {
  14.         super.text = this._ subObject1[_listData.dataField];
  15.     } else if (this._subObject2.hasOwnProperty(_listData.dataField)) {
  16.         super.text = this._subObject2[_listData.dataField];
  17.     } else if (this._subObject3.hasOwnProperty(_listData.dataField)) {
  18.          super.text = this._subObject3[_listData.dataField];
  19.     } else {
  20.         super.text = "No data."
  21.     }
  22. }
Alle Klassenattribute sind [Bindable] deklariert und auch die implementierten Datentypen sind [Bindable].

Der ItemEditor ist ein TitleWindow.

Nach meinem Verständnis sollten sich die Renderer durch die Bindable Deklaration aber doch aktualisieren, wenn sich das gebundene Objekt ändert, oder nicht?
Omega Psi ist offline   Mit Zitat antworten
Alt 13-08-2008, 15:05   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Wie änderst du denn das Objekt, holst du es mit getItemAt aus der ArrayCollection?
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 13-08-2008, 15:08   #3 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Stupid me...

Hier die Lösung: http://weblogs.macromedia.com/pent/a...erers_p_4.html
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele