J'ai le problème suivant.Problème lors de l'actualisation correcte de l'info-bulle sur un objet itemender dans Flex
J'ai un ArrayCollection qui est agissant en tant que fournisseur de données pour un TileList (appelé favoriteLinksList)
J'utilise un itemRenderer appelé FavoriteItem comme itemRenderer du TileList. Ce FavoriteItem ressemble à ceci:
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
width="280" height="163"
horizontalAlign="center"
paddingLeft="5" paddingRight="5" paddingTop="0" paddingBottom="0" xmlns:ns1="*">
<mx:Canvas width="100%" height="100%">
<mx:Image
id="thumbnail"
width="178" height="115"
source="{data.thumbnail}"
toolTip = "{data.tooltip}" x="46" y="10"/>
<mx:Text
id="title"
text="{data.tileListTitle}"
width="254"
toolTip="{data.tooltip}" x="10" y="133"/>
</mx:Canvas>
</mx:VBox>
Comme vous pouvez le voir, les info-bulles pour les deux éléments qu'il contient sont tirées de data.tooltip
Cela fonctionne très bien.
Le problème est l'actualisation de l'info-bulle lorsqu'elle a été modifiée.
Les objets (de type Object) dans ArrayCollection ont chacun une propriété appelée tooltip (évidemment puisque c'est là que l'itemRenderer obtient ses informations).
Lorsque je change cette propriété à sa nouvelle valeur, l'info-bulle de itemRenderer ne change pas pour refléter cela.
J'ai essayé de le définir manuellement en obtenant itemRenderer à partir de l'événement qui est déclenché en cliquant sur l'un des éléments de la liste déroulante mais sans succès.
Exemple:
event.itemRenderer.title.toolTip = event.currentTarget.selectedItem.tooltip;
après avoir mis à jour l'info-bulle, mais cela donne une erreur de compilation: accès de titre de propriété peut-être définie par une référence avec mx.controls.listClasses de type statique: IListItemRenderer.
J'ai également essayé d'effectuer un refresh() sur la collection de tableaux favoriteLinksList mais cela a donné des résultats mitigés. L'info-bulle a été mise à jour correctement, mais l'un des articles (le premier) de la liste des billets a disparu! Cela semble être un bug Flex. Le fournisseur de données a le même nombre d'éléments avant et après l'actualisation et cela ne se produit pas si je clique sur le premier élément de la liste de prix.
Toute aide est grandement appréciée.
pour une raison quelconque, le code que j'ai collé n'était pas correctement formatter. Voici un lien vers le code: http://pastie.org/1341113 – KensoDev
Je reçois "ne peut pas accéder à la propriété d'une référence d'objet null" pour title.toolTip = data.tooltip Je pensais changer les données en valeur de sorte qu'il soit title.toolTip = value.tooltip mais toujours pas de joie :( La liste favoriteLinksList est [Bindable] et les modifications apportées lors du démarrage de l'application sont reflétées correctement dans la liste des lignes –
Il s'est avéré que même si la liste favoriteLinksList était lisible fournisseur de données à tileList, les modifications apportées aux objets individuels ne doivent pas avoir été propagées à la liste.Telurel trouvé une solution et l'a inclus ci-dessous –