В чем разница между invalidateList и invalidateDisplayList?
У меня есть DataGrid, заполненный объектами в ArrayCollection. После обновления одного из полей объектов я хочу, чтобы экран обновлялся. Источник данных не является связываемым, потому что я его создаю во время выполнения (и я не понимаю, как его можно привязать на лету, - этот еще вопрос).
В этой ситуации, если я вызываю InvalidateDisplayList() в сетке, ничего не происходит. Но если я вызываю invalidateList(), обновления происходят. (И это очень гладко - не мерцает, как я ожидал бы от недействительности окна в WIN32.)
Итак, вопрос: в чем разница между InvalidateList и InvalidateDisplayList? Из документации кажется, что нужно работать.
Ответы
Ответ 1
invalidateList сообщает компоненту, что данные были изменены, и ему необходимо перезагрузить его и повторно отобразить.
invalidateDisplayList сообщает компоненту, что он должен перерисовать себя (но не обязательно перезагружать его данные).
Ответ 2
invalidateDisplayList() просто устанавливает флаг, чтобы updateDisplayList() можно было вызывать позже во время обновления экрана. invalidateList() - это то, что вы хотите.
http://livedocs.adobe.com/flex/2/langref/mx/core/UIComponent.html#invalidateDisplayList()