Доступ к свойству средства визуализации элементов в Flex - PullRequest
0 голосов
/ 29 июня 2010

У меня есть сетка данных со списком в нем, как;

   <mx:DataGrid editable="true"  x="72" y="10" id="dataGrid" creationComplete="dataGrid_creationCompleteHandler(event)" dataProvider="{getAllResult.lastResult}" height="178" width="896">
        <mx:columns>
            <mx:DataGridColumn headerText="STATUS" dataField="tooltip"/>
            <mx:DataGridColumn headerText="CUSTOM" editable="false" width="250" labelFunction="meAdnan"  >
                <mx:itemRenderer>
                    <fx:Component className="myEditor2">
                        <mx:VBox height="100%" >
                            <mx:ComboBox  id="pickState" labelField="attname" 
                                          dataProvider="{parentApplication.getAllResult2.lastResult}" 
                                         >
                            </mx:ComboBox>

                        </mx:VBox>
                    </fx:Component>                 
                </mx:itemRenderer>
            </mx:DataGridColumn>
        </mx:columns>
   </mx:DataGrid>

Теперь, когда я хочу получить доступ к функции из itemrendered / combobox, я использую parentApplication.funcName, но как насчет доступа другим способом,я могу получить доступ к свойству выпадающего списка из внешнего списка элементов?Я пытался myEditor2.pickState, но теперь он работает

1 Ответ

1 голос
/ 29 июня 2010

parentApplication будет относиться к основному классу Application, который не всегда может быть тем, к чему вы собираетесь обратиться - что если ваш DataGrid находится в компоненте, который расширяет Canvas.Используйте outerDocument для доступа к документу-владельцу из itemRenderer.Таким образом, это должно быть outerDocument.funcName.

Непосредственный доступ к экземплярам itemRenderer не является хорошей идеей, поскольку средства визуализации элементов используются повторно при прокрутке списка и т. Д. Так что если вы получаете ссылку на экземпляр средства визуализации первой строки иВы немного прокручиваете список вниз, тот же самый экземпляр (который вы считаете первой строкой) теперь может представлять 3-ю или 5-ю (или любую другую) строку в зависимости от того, сколько строк вы прокручивали.Правильный способ - переопределить метод public set data и манипулировать им оттуда на основе данных.

Тем не менее, вы можете использовать метод indexToItemRenderer , чтобы получить ссылку на текущий элемент визуализации по заданному индексу.Приведите его к правильному типу (или присвойте его переменной, типизированной Object) и прочитайте ее свойство pickState.

...