Невозможно связать предупреждение: класс не является IEventDispatcher - PullRequest
3 голосов
/ 07 апреля 2011

Я нашел другой похожий вопрос, но не совсем следую объяснению и не уверен, применимо ли это ко мне.

Я получаю ошибку:
предупреждение: невозможно связать со свойством «Описание» в классе «Объект» (класс не является IEventDispatcher)

это только тогда, когда данные привязаны к списку как ArrayList. Я имел это в Datagrid раньше (так же, как массив), и это не вызывало никаких проблем. Я не ожидаю, что смогу связать какие-либо данные обратно с классом «объект», даже не уверенный, к какому именно объекту он относится.

Поставщик данных моего списка - ArrayList .., заполненный событием результата из запроса SQL, содержащегося в другом классе:

   private function loadDayComplete():void
        {   
            var Meals:Array = _day.MealResults;
            var MealsListResult:ArrayList = new ArrayList(Meals);
            MealPanelDataGrid.dataProvider = Meals;
            MealListView.dataProvider = MealsListResult;
        {

У меня есть дневной класс для хранения всех данных (из нескольких таблиц) за 24 часа. У меня есть классы для каждого отдельного типа данных для их редактирования. Но я не уверен, нужно ли мне беспокоиться о предупреждении, если я не планирую редактировать значения? хотя, когда я прикасаюсь к чему-либо, он полностью спамит, поэтому я действительно хотел бы от него избавиться. Я попробовал объектный прокси-сервер, как я уже описал, но ничего не изменилось. И я довольно озадачен, почему вдруг возникает проблема с компонентом списка, когда его нет в сетке данных ... В любом случае текст сейчас находится в полях меток, которые нельзя даже отредактировать .

Ответы [ 2 ]

6 голосов
/ 07 апреля 2011

Объекты, вызывающие это предупреждение, вероятно, являются элементами в массиве Meals. Убедитесь, что эти элементы строго типизированы (шаблоны объектов передачи данных / шаблоны значений) и что поле Description помечено [Bindable].

В зависимости от используемого вами механизма удаленного взаимодействия вы можете использовать что-то вроде makeObjectsBindable флаг, который заменяет возвращенные Object элементы связываемыми ObjectProxy экземплярами.

Но я все равно советую строго печатать.

0 голосов
/ 07 апреля 2011

Вы можете избавиться от него, сделав dataProvider EventDispatcher: ObjectProxy - EventDispatcher. Он автоматически перенесет ваши данные на указанную или бесконечную глубину (поведение по умолчанию).

metaPanelDataGrid.dataProvider = new ObjectProxy(meals);

Это в основном то же самое, что и с ArrayCollection, но глубже.

...