Мой рендерер предметов не находит свойство "данные". - PullRequest
2 голосов
/ 28 февраля 2011

Я пытаюсь создать пользовательский рендеринг кнопок для своего списка, и он продолжает говорить неопознанное свойство "данные".Вот мой код.

Renderer:

<?xml version="1.0" encoding="utf-8"?>
<s:Button xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark" 
          xmlns:mx="library://ns.adobe.com/flex/mx" label="{data.label}">
</s:Button>

Объект, вызывающий Renderer:

<s:List x="80" y="88" width="142" height="384" dataProvider="{navigation}" itemRenderer="com.renderers.NavigationRenderer" borderVisible="false"/>

И коллекция массивов, содержащая данные для списка:

[Bindable]
private var navigation:ArrayCollection = new ArrayCollection([
    {label:"Home",state:"Home"},{label:"Tools",state:"Tools"}
]);

Что я мог сделать не так?

Ответы [ 3 ]

4 голосов
/ 28 февраля 2011

Имеет ли s: Button свойство с именем data?

Пусть ваш рендерер расширит класс ItemRenderer. Больше информации здесь .

Ваш рендерер должен выглядеть примерно так:

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark" 
          xmlns:mx="library://ns.adobe.com/flex/mx" >
<s:Button label="{data.label}">
</s:ItemRenderer>
3 голосов
/ 28 февраля 2011

Кнопка зажигания не реализует интерфейс IDataRenderer.

Вы можете легко поместить свою кнопку в класс ItemRenderer, чтобы получить доступ к этому интерфейсу, или вы можете создать новый класс средства визуализации элементов, расширяющий Button и реализующийIDataRenderer.

1 голос
/ 28 февраля 2011

Компоненты Spark по умолчанию не имеют свойства data .Чтобы использовать компонент в качестве администратора, он должен реализовать интерфейс IItemRenderer , чего нет у кнопки «Искра».

...