2010-11-23 4 views
0

J'utilise le framework Swiz et j'essaye de mettre à jour l'attribut selectedIndex de mon viewstack avec une propriété bindable. Il arrive à mon gestionnaire d'événements qui met à jour la variable bindable mais le viewstack du fichier d'application Main ne le réalise jamais. Quel pourrait être le problème?Variable bindable ne se mettant pas à jour avec viewstack/swiz

thx

-Mike

================================

APP prinicpal FICHIER

<mx:Script> 
    <![CDATA[ 
     import reg.model.ApplicationViewModel; 
     import beyaz.reg.swiz.SwizBeans; 
     import org.swizframework.Swiz; 

     [Autowire(bean="applicationViewModel")] 
     [Bindable] 
     public var applicationViewModel:ApplicationViewModel; 

     private function preInitialize():void { 
      Swiz.loadBeans([ SwizBeans ]); 
     } 

    ]]> 
</mx:Script> 


     <mx:ViewStack id="theViewstack" **selectedIndex=" {applicationViewModel.mainViewIndex}"** width="100%" height="100%"> 
    <prescreen:Prescreen id="prescreenView"/> 
    <login:Login id="loginView"/> 
    <profile:Profile id="profileView"/> 

</mx:ViewStack> 

=================================

ApplicationViewModel

package com.reg.model { public class ApplicationViewModel { public statique const PRESCREEN_VIEW: int = 0; public statique const LOGIN_VIEW: int = 1; const statique publique PRSNL_INFO_VIEW: int = 2;

[Bindable] 
    public var message:String = ""; 

    [Bindable] 
    public var mainViewIndex:int = PRESCREEN_VIEW; 
} 

}

===========================

Contrôleur

paquet

com .reg.controller {

import com.reg.model.ApplicationViewModel; 

import mx.collections.ArrayCollection; 
import mx.controls.Alert; 
import mx.events.DynamicEvent; 
import mx.rpc.events.FaultEvent; 
import mx.rpc.events.ResultEvent; 
import mx.core.Application; 

import org.swizframework.Swiz; 
import org.swizframework.controller.AbstractController; 

public class PrescreenController// extends AbstractController 
{ 
    public static const START_REGISTRATION:String = "startReg"; 

    [Autowire(bean="applicationViewModel")] 
    [Bindable] 
    public var applicationViewModel:ApplicationViewModel; 


    [Mediate(event="startReg")] 
    public function startReg():void 
      { 

       //CODE GETS TO HERE! 
       applicationViewModel.mainViewIndex = ApplicationViewModel.PRSNL_INFO_VIEW; 

    } 


} 

}

+0

Quelqu'un? N'importe qui? Y a-t-il des pièges communs que je pourrais rechercher lorsque les variables de liaison? – Mike6679

+0

Quelle version de Swiz utilisez-vous? Vous devriez envisager de mettre à jour vers la dernière version (je recommanderais Swiz 1.0 RC2 ou même la dernière version de [Git] (https://github.com/swiz/swiz-framework)). De toute façon, pourriez-vous s'il vous plaît poster votre config Swiz? Est-ce que votre 'applicationViewModel' est un bean prototype? –

+0

Merci Gerhard. C'était le problème mais maintenant, bien sûr, je reçois des erreurs de compilation: 1120: Accès à la propriété indéfinie Swiz. 1172: Définition org.swizframework: Swiz introuvable. – Mike6679

Répondre

0

Je me suis fait avoir par ce problème la semaine dernière.

Placez votre balise [Bindable] avant les autres balises. Pour quelque raison que ce soit, le compilateur Flex ne se plie pas dans la répartition PropertyChangeEvent appropriée à moins que vous n'ayez placé la balise [Bindable] en premier.

Questions connexes