/ / Die Eigenschaft hat noch den alten Wert in validateProperties - actionscript-3, flex, flex3, itemrenderer

Die Eigenschaft hat immer noch den alten Wert in validateProperties - actionscript-3, flex, flex3, itemrenderer

Ich habe einen benutzerdefinierten Renderer (erbt von AdvancedDataGridItemRenderer) und ich überschreibe validateProperties und mit dem Wert von width Eigentum, aber ich bekomme jedes Mal den alten Wert! validateProperties soll ausgeführt werden, nachdem die Eigenschaften festgeschrieben wurden (ich rufe super an)? Hier ist mein Code:

public override function validateProperties():void
{
super.validateProperties();
if ((AdvancedDataGrid(listData.owner).columns[listData.columnIndex].
showDataTips)&&(textWidth>width))
toolTip=listData.label;
else toolTip=null;
}

Vielen Dank!

Antworten:

0 für die Antwort № 1

Sie sollten dies im Datensetzer für Ihren Elementrenderer tun:

public override function set data(val:Object):void{
super.data=val;
if ((AdvancedDataGrid(listData.owner).columns[listData.columnIndex].
showDataTips)&&(textWidth>width))
toolTip=listData.label;
else toolTip=null;

}

0 für die Antwort № 2

Es ist besser, den Breiteneinsteller zu überschreiben oder das Ereignis "textFieldWidthChange" zu behandeln.


0 für die Antwort № 3

Ich habe es gelöst Der Trick ist zu benutzen validateSize für die width Eigentum. validateProperties ist für Eigenschaften, die nicht zu einer der anderen Gruppen gehören, für die ein dediziertes besteht validateX Funktion (wie z validateSize, validateList, etc.).