Использовать дочерний узел XML в качестве метки в списке Spark itemRenderer - PullRequest
0 голосов
/ 19 января 2011

В ActionScript я сокращаю свой XML до серии узлов, все они формируются следующим образом:

<option letter="A">
    <letter>A</letter>
    <response>Thank you</response>
    <posFeed>Excellent</posFeed>
    <negFeed>Terrible</negFeed>
    <score>-1</score>
    <elimOptions>B</elimOptions>
</option>

Когда я устанавливаю эту серию в качестве dataProvider для моего списка Spark, в котором используется настраиваемое средство визуализации элементов с меткой Spark, я устанавливаю label.text = {data}, который отображает каждый полный набор узлов в качестве элемента списка. 1004 *

Если я не хочу заранее сводить XML только к узлам (я хотел бы, чтобы полный набор не затрагивался для других функций, которые я должен выполнять), как я могу установить только узел ответа, который должен быть данными для использовать для метки в itemRenderer? Я попытался установить метку text = {data.response}, но это не работает (полный набор узлов по-прежнему отображается как каждый элемент списка.

1 Ответ

0 голосов
/ 19 января 2011

Как это:

<fx:Declarations>
    <fx:XML id="data">
        <options>
            <option letter="A">
                <letter>A</letter>
                <response>Thank you</response>
                <posFeed>Excellent</posFeed>
                <negFeed>Terrible</negFeed>
                <score>-1</score>
                <elimOptions>B</elimOptions>
            </option>
            <option letter="B">
                <letter>B</letter>
                <response>Thank you B</response>
                <posFeed>Excellent B</posFeed>
                <negFeed>Terrible B</negFeed>
                <score>-1</score>
                <elimOptions>B</elimOptions>
            </option>
        </options>
    </fx:XML>
</fx:Declarations>

<s:List labelField="response">
    <s:dataProvider>
        <s:XMLListCollection source="{data.option}" />
    </s:dataProvider>
</s:List>

Я должен добавить, что когда я сделал это, у меня не было никаких проблем с использованием пользовательского средства визуализации элементов:

<s:List itemRenderer="DataItemRenderer">
    <s:dataProvider>
        <s:XMLListCollection source="{data.option}" />
    </s:dataProvider>
</s:List>

<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" 
                autoDrawBackground="true">

    <s:Label text="{data.response}"/>

</s:ItemRenderer>
...