Привязываемая переменная не обновляется с помощью viewstack / swiz - PullRequest
0 голосов
/ 23 ноября 2010

Я использую инфраструктуру Swiz и пытаюсь обновить selectedIndex моего стека просмотра с помощью привязываемого свойства.Он попадает в мой обработчик событий, который обновляет привязываемую переменную, но стек просмотра основного файла приложения никогда не осознает этого.В чем может быть проблема?

thx

-Майк

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

ОСНОВНОЙ ФАЙЛ ПРИЛОЖЕНИЯ

<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 {открытый класс ApplicationViewModel {открытый статический констант 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;

    }


}

}

1 Ответ

0 голосов
/ 18 января 2011

Я столкнулся с этой проблемой только на прошлой неделе.

Поместите свой тег [Bindable] перед другими тегами. По какой-то причине компилятор Flex не складывается при соответствующей PropertyChangeEvent диспетчеризации, если вы не ставите тег [Bindable] первым.

...