Отражать свойство изменяться с одного взгляда на другой взгляд, используя класс в качестве промежуточного соединения
-
09-10-2019 - |
Вопрос
Я отправил нить который был (после прочтения его снова) совершенно неправильно сформулирован. Это на самом деле то, что я хотел знать:
В приложении Flex используя MATE Предположим, у нас есть вид, называемый View.mxml с свойством под названием ViewProp и класс под названием Classmanager с классом свойств. Предположим, у нас есть еще один вид под названием SecondView.mxml с включением свойств.
Можно ли как-то определить следующее: всякий раз, когда моменты просмотраSPROP (в View.mxml) КлассProp также изменяется в ClassManager, что, в свою очередь, отражает его изменения в SictView.mxml в SeconnProp?!
Я надеюсь, что на этот раз правильно описал это!
заранее спасибо
Решение
Это немного отличается от вашего первого вопроса.
Классы View не должны получать доступ к классам модели, и из-за того, что класс View должен отправлять событие для изменения класса модели.
1.) Вы должны определить какое-то новое событие
public class ViewPropIsChangedEvent extends Event
{
public static const SET_NEW_VALUE:String = "theNewValue";
private var _value:Object;
public ViewPropIsChangedEvent(type:String, value:Object, bubbling:Boolean=true, cancelable:Boolean=false)
{
super(type,bubbling,cancelable);
_value = value;
}
public function get value():Object
{
return _value;
}
}
2.) Когда вы поменяли просмотр на просмотр .mxml, вы должны отправить событие
dispatchEvent(new ViewPropIsChangedEvent(ViewPropIsChangedEvent.SET_NEW_VALUE, theNewValue))
3.) В случае eventMap вы должны обрабатывать событие
</EventHandlers type="{ViewPropIsChangedEvent.SET_NEW_VALUE}">
<PropertySetter generator="{ClassManager}"
targetKey="ClassProp"
source="{event.value}"/>
</EventHandlers>
4.) В модели ModeMap вы уже должны связать SicTView.secondProp в ClassManager.ClassProp
<Injectors target="{Secondview}">
<PropertyInjector targetKey="SecondProp"
source="{ClassManager}"
sourceKey="ClassProp"/>
</Injectors>
Другие советы
Как насчет таким образом:
При изменении ViewProp или ClassProp это свойство отправляет событие и EventListener добавляется в SicTView.mxml для изменения второго значения свойства.