Привязываемая переменная не обновляется с помощью viewstack/swiz

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

Спасибо

-Майк

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

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

<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

пакет com.reg.model {общедоступный класс ApplicationViewModel {public static const PRESCREEN_VIEW:int = 0; общедоступная статическая константа LOGIN_VIEW:int = 1; общедоступная статическая константа 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;

    }


}

}


person Mike6679    schedule 23.11.2010    source источник
comment
Кто-нибудь? Кто-нибудь? Существуют ли распространенные ошибки, которые я мог бы найти при связывании переменных?   -  person Mike6679    schedule 24.11.2010
comment
Какую версию Swiz вы используете? Вам следует подумать об обновлении до последней версии (я бы рекомендовал Swiz 1.0 RC2 или даже самую последнюю версию из Git< /а>). В любом случае, не могли бы вы опубликовать свою конфигурацию Swiz? Является ли ваш applicationViewModel bean-компонентом-прототипом?   -  person Gerhard Schlager    schedule 26.11.2010
comment
Спасибо Герхард. Это была проблема, но теперь, конечно, я получаю ошибки компилятора: 1120: Доступ к неопределенному свойству Swiz. 1172: Не удалось найти определение org.swizframework:Swiz.   -  person Mike6679    schedule 29.11.2010
comment
Структура пакетов Swiz сильно изменилась по сравнению с ранними версиями. Например. класс Swiz теперь можно найти в org.swizframework.core.Swiz. Ознакомьтесь с документацией, она очень полезна. Также есть руководство по миграции. Если у вас все еще есть проблемы, просто задайте другой вопрос или обновите этот.   -  person Gerhard Schlager    schedule 29.11.2010
comment
Вы пытались переместить тег [Bindable]?   -  person qualidafial    schedule 20.01.2011


Ответы (1)


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

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

person qualidafial    schedule 17.01.2011