2012-01-06 2 views
0

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

package 
{ 
    [Bindable] 
    public class Author 
    { 
     public var firstName:String; 
     public var lastName:String; 
     public var books:ArrayCollection; 

     public function get dateOfFirstBookPublished():Date 
     { 
      if (books != null) { 
       return books[0].datePublished; 
      } 
      return null; 
     } 
    } 

} 

package 
{ 
    [Bindable] 
    public class Book 
    { 
     public var name:String; 
     public var datePublished:Date; 
    } 

} 

Как я могу сообщить Автор, когда книга Собственость изменилась и обновить dateOfFirstBookPublished метод? Любая помощь приветствуется.

ответ

0

Экземпляр ArrayCollection отправляет CollectionEvent.COLLECTION_CHANGE каждый раз, когда вы добавляете/удаляете элементы из него. Вы можете прослушать это событие.

author.addEventListener(CollectionEvent.COLLECTION_CHANGE, onChange); 

public function onChange(event:CollectionEvent):void 
{ 
    //your logic here 
} 
+0

Благодарим за отзыв. Не могли бы вы привести пример с использованием вышеуказанных классов? – Tyler

+0

@ Тайлер, пожалуйста, покажите, как вы используете dateOfFirstBookPublished() –

+0

Я бы использовал dateOfFirstBookPublished(), чтобы вернуть книгу с самой ранней datePublished. Поэтому в рамках метода я сортировал коллекцию по дате, опубликованную в порядке возрастания, и возвращал книгу в индекс 0. Таким образом, когда коллекция изменяется или свойство в коллекции книг изменяется, dateOfFirstBookPublished должна знать об изменении и возвращать правильную книга. – Tyler

 Смежные вопросы

  • Нет связанных вопросов^_^