Нет ничего явно неправильного в примере кода.Это должно работать, поэтому я думаю, что есть проблема в другом месте.
Я бы порекомендовал установить точку останова, где назначен dataProvider
, а также где model.friendsSearchResults
.Убедитесь, что они оба указывают на один и тот же экземпляр объекта.Затем перейдите к назначению свойства и соответствующему событию.
Чтобы упростить отладку, вы можете переключиться на использование именованного события вместо значения по умолчанию.С именованным событием срабатывают только слушатели событий, заинтересованные в вашем конкретном свойстве, а не слушатели, прослушивающие любое изменение свойства.Это легче отладить и будет работать быстрее.Например, измените:
[Bindable]
public var results:ArrayCollection;
на
[Bindable("resultsChanged")]
private var _results:ArrayCollection;
public function get results():ArrayCollection {
return _results;
}
public function set results(value:ArrayCollection):Void {
_results = value;
dispatchEvent(new Event("resultsChanged"));
}
Еще одна вещь, о которой следует помнить, это то, что привязки скрывают определенные ошибки, такие как исключения нулевой ссылки.Они предполагают, что значение просто еще не доступно и подавляют ошибку.Выполнение задания и связанных привязок поможет найти такую проблему.