我正在使用Swiz框架,并尝试使用bindable属性更新我的视图堆栈的selectedIndex。它到达我的事件处理程序,该处理程序更新了bindable变量,但主应用程序文件的viewstack从未意识到这一点。可能的问题是什么?
thx
-Mike
================================
主应用程序文件
<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
包类{ public com.reg.model ApplicationViewModel { public static const PRESCREEN_VIEW:int = 0;public static const LOGIN_VIEW:int = 1;public static const PRSNL_INFO_VIEW:int = 2;
[Bindable]
public var message:String = "";
[Bindable]
public var mainViewIndex:int = PRESCREEN_VIEW;
}}
===========================
控制器
包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;
}
}}
发布于 2011-01-18 07:07:52
就在上个星期,我被这个问题所困扰。
将您的[Bindable]标记放在其他标记之前。由于某些原因,除非您首先放置[Bindable]标记,否则Flex编译器不会合并适当的PropertyChangeEvent调度。
https://stackoverflow.com/questions/4258632
复制相似问题