Adobe Flex ссылается на другой объект - PullRequest
0 голосов
/ 06 июня 2011

У меня есть таблица данных flex 3, которая находится в совершенно отдельном контейнере от объекта, с которого я пытаюсь сослаться на него, т. Е. Сетка данных находится в vbox, и я пытаюсь установить свойство в сетке данных из всплывающего окна. .

Как получить доступ к сетке данных из всплывающего окна? Я хотел бы сделать что-то вроде:

myView.myDatagrid.resizableColumns = false;

Использование cairngorm в качестве основы, если это поможет.

Ответы [ 2 ]

0 голосов
/ 06 июня 2011

Когда вы добавляете всплывающее окно, вам нужно прослушать событие. Затем вашему всплывающему окну необходимо отправить событие, которое может обработать родитель.

myPopup.addEventListener(SomeEvent.DISABLE_COLUMNS,disableResize);

и затем в родительском компоненте

public function disableResize(event:SomeEvent):void{
   myDatagrid.resizableColumns = false;
}

Предполагается, что пользовательское событие называется SomeEvent ... на самом деле вы можете просто создать событие Flash по умолчанию и дать ему имя, например

 dispatchEvent(new Event("MyDisableResizeEvent"));

Если у вас есть кнопка во всплывающем окне:

<mx:Button click="{dispatchEvent(new Event('MyDisableResizeEvent'));}" label="Disable Resizing"/>
0 голосов
/ 06 июня 2011

Вам придется лучше объяснить свою архитектуру, чтобы получить конкретный ответ. Этот ответ может помочь , поскольку все, что я говорил о запуске методов в другом компоненте, также относится к доступу к свойствам.

Одним из решений для вас является передача экземпляра DataGrid во всплывающее окно в качестве переменной экземпляра; тогда PopUp сможет легко изменять свойства DataGrid.

...