2010-11-23 11 views
0
aktualisieren

Ich benutze das Swiz-Framework und ich versuche, Viewedack selectedIndex mit einer bindbaren Eigenschaft zu aktualisieren. Es kommt zu meinem Event-Handler, der die bindbare Variable aktualisiert, aber der Viewstack der Main-App-Datei erkennt es nie. Was könnte das Problem sein?Bindbare Variable nicht mit viewstack/swiz

thx

-Mike

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

MAIN APP FILE

<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

Paket com.reg.model { öffentliche Klasse ApplicationViewModel { öffentliche statische const PRESCREEN_VIEW: int = 0; öffentliche statische const LOGIN_VIEW: int = 1; öffentliche statische Konstante PRSNL_INFO_VIEW: int = 2;

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

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

}

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

-Controller

Paket 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

Jeder? Jemand? Gibt es Gemeinsamkeiten, auf die ich achten könnte, wenn ich Variablen verbinde? – Mike6679

+0

Welche Version von Swiz verwenden Sie? Sie sollten ein Upgrade auf die neueste Version in Erwägung ziehen (ich würde Swiz 1.0 RC2 oder sogar die neueste Version von [Git] empfehlen (https://github.com/swiz/swiz-framework)). Kannst du bitte deine Swiz-Konfiguration posten? Ist Ihr 'ApplicationViewModel' eine Prototyp Bean? –

+0

Danke Gerhard. Das war das Problem, aber jetzt bekomme ich natürlich Compiler Fehler: 1120: Zugriff von undefined Eigenschaft Swiz. 1172: Definition org.swizframework: Swiz konnte nicht gefunden werden. – Mike6679

Antwort

0

Ich habe gerade letzte Woche an diesem Problem mitgewirkt.

Setzen Sie Ihr [Bindable] Tag vor die anderen Tags. Aus irgendeinem Grund faltet der Flex-Compiler das entsprechende PropertyChangeEvent Dispatching nicht, wenn Sie das [Bindable]-Tag zuerst setzen.